@media (prefers-color-scheme: dark) {
  body {
    background-color: #06233c;
  }
}

@media (prefers-color-scheme: light) {
  body {
    background-color: #fff;
  }
}
:root.light-theme {
  --background: #f9f9f9;
  --secondary-background: #ffffff;
  --text-color: #2c2c2c;
  --link-color: #1e90ff;
  --text-dark-color: #0c0c0c;
  --text-semitrasparent: rgba(44, 44, 44, 0.6);
  --global-gradient: linear-gradient(140deg, #f5f5f5 0%, #ececec 100%);
  --global-reverse-gradient: linear-gradient(-45deg, #ececec 0%, #f5f5f5 100%);
  --main-col: #e8e8e8;
  --main-col-darker: #d4d4d4;
  --main-content-bg: rgba(0, 0, 0, 0.03);
  --dark-semitransparent: rgba(40, 40, 40, 0.5);
  --element-color-primary: rgba(30, 144, 255, 0.8);
  --element-color-secondary: rgba(30, 144, 255, 0.15);
  --button-color: #1e90ff;
  --text-color-on-dark: #f0f0f0;
  --gradient-end: #ffffff;
  --gradient-widget: linear-gradient(223deg, #ffffff 10%, #f9f9f9 100%);
  --new: #ff1744;
  --passed: #4caf50;
}

:root.dark-theme {
  --background: #151515;
  --secondary-background: #1e1e1e;
  --text-color: #e1e1e1;
  --link-color: #64b5f6;
  --text-dark-color: #ffffff;
  --text-semitrasparent: rgba(225, 225, 225, 0.6);
  --global-gradient: linear-gradient(140deg, #2c2c2c 0%, #2c2c2c 100%);
  --global-reverse-gradient: linear-gradient(-45deg, #2c2c2c 0%, #2c2c2c 100%);
  --main-col: #1a1a1a;
  --main-col-darker: #0f0f0f;
  --main-content-bg: rgba(255, 255, 255, 0.03);
  --dark-semitransparent: rgba(35, 35, 35, 0.8);
  --element-color-primary: rgba(100, 181, 246, 0.8);
  --element-color-secondary: rgba(100, 181, 246, 0.15);
  --button-color: #64b5f6;
  --text-color-on-dark: #f5f5f5;
  --gradient-end: #1e1e1e;
  --gradient-widget: linear-gradient(223deg, #252525 10%, #151515 40%);
  --new: #e53935;
  --passed: #81c784;
}



.logo-light,
.logo-dark {
  display: none;
}

.light-theme .logo-light {
  display: block;
}
.dark-theme .logo-dark {
  display: block;
}
.dark-theme .btn-primary {
  background-color: var(--secondary-background);
}

.dark-theme .btn-outline-dark {
  color: var(--text-color-on-dark);
  border-color: var(--text-color-on-dark);
}

.dark-theme .btn.action {
  border: 1px solid #fff2;
}

.btn.action:hover {
  border: 1px solid #fff;
}

.form-control:disabled,
.form-control[readonly] {
  background-color: #8b8b8b;
  opacity: 1;
}

.has_played_flag {
  font-size: 0.7rem;
  position: absolute;
  z-index: 2;
  background-color: var(--background);
  color: var(--text-color);
  padding: 2px;
  border-radius: 10px;
  border: 1px solid var(--secondary-background);
  right: 30px;
  top: 4px;
}

.card-header {
  background: var(--secondary-background);
}

#spinner-message {
  color: var(--text-color-on-dark);
}

.card-home .card-img-top {
  background-position-x: 0%;
  background-position-y: 0%;
  background-size: auto;
  background-size: cover;
  background-position: center center;
}

.play-game-head {
  font-weight: bold;
  background: #2f84cde7;
  color: white;
  padding: 6px;
  border-radius: 8px;
}

body {
  background: var(--background);
  color: var(--text-color);
}

a {
  color: var(--link-color);
}

hr {
  border-color: var(--main-content-bg);
}

#left-sidebar .left-sidebar-footer {
  color: var(--text-color);
}

#left-sidebar .left-sidebar-footer #version {
  opacity: 0.5;
  font-size: 0.8rem;
}

.chart-widget {
  color: var(--text-color);
  background: var(--secondary-background);
  box-shadow: 0 3px 17px #0001;


}

#notification-box {
  background-color: var(--secondary-background);
  border: 1px solid #fff2;
}

.new {
  background: var(--new);
  color: white;
}

.passed {
  background: var(--passed);
  color: white;
  padding: 6px 15px;
}

.team-header::before {
  background-image: linear-gradient(to left, var(--gradient-end), #e9e9e9);
}

.team-header.red-team-header::before {
  background-image: linear-gradient(to left, var(--gradient-end), #cb1d1d);
}

.team-header.blue-team-header::before {
  background-image: linear-gradient(to left, var(--gradient-end), #019acd);
}

.form-control {
  color: var(--text-color);
  background-color: var(--background);
  border: 1px solid #a3a3a37d;
  font-weight: bold;
}

.modal-content {
  background-color: var(--background);
  border: 1px solid #fff3;
}

.widget-icon {
  padding: 15px;
  color: white;
  border-radius: 50px;
  font-size: 2rem;
  box-shadow: 0 6px 10px #0002;
  border: 1px solid #fff2;
}

.game-list-item:hover {
  background-color: #207ccb;
  color: white;
}
.game-list-item.active {
  background-color: #207ccb;
  color: white;
}

.play-game-box {
  background: var(--main-content-bg);
  border-radius: 9px;
  margin: 10px 0;
}

.dropdown-menu {
  color: var(--text-color);
}

.dropdown-menu p {
  color: var(--text-color);
}



.sw-pop {
  background-color: var(--background) !important;
  color: var(--text-color) !important;
  border: 1px solid #fff4 !important;
}

.sw-pop-lg {
  background-color: var(--background) !important;
  color: var(--text-color) !important;
  border: 1px solid #fff4 !important;
  max-width: 800px;
  min-width: 800px;
}

@media only screen and (max-width: 992px) {
  .sw-pop-lg {
    background-color: var(--background) !important;
    color: var(--text-color) !important;
    border: 1px solid #fff4 !important;
    max-width: 100%;
    min-width: 100%;
  }
}

#overlay {
  background-color: var(--dark-semitransparent);
}
.spinner {
  border-left: 6px solid var(--element-color-secondary);
  border-right: 6px solid var(--element-color-secondary);
  border-bottom: 6px solid var(--element-color-secondary);
  border-top: 6px solid var(--element-color-primary);
  border-radius: 100%;
}

.card-title {
  color: var(--text-color);
}

.card-title-on-dark {
  color: var(--text-color-on-dark);
}

.dashboard-private .list-group-item.active {
  background-color: #0060b2;
}

.rank-lines {
  background-color: var(--background);
}

.card-home {
  background-color: var(--secondary-background) !important;
}

#helplist .nav-link.active {
  color: var(--text-color-on-dark) !important;
}

.close {
  color: var(--text-color);
  text-shadow: 0;
}

.close:hover {
  color: var(--text-color);
  text-shadow: 0;
}

.btn.action {
  background: var(--secondary-background) !important;
  box-shadow: 0 3px 3px #0001;
  font-size: 0.9rem;
  color: var(--text-color);
}

.btn.action:hover {
  border: 1px solid var(--text-color);
}

.red-team .btn.action {
  color: red;
}
.blue-team .btn.action {
  color: #019acd;
}

.btn.action:hover {
  color: var(--text-color);
}

.dashboard-private .list-group-item.active span {
  color: white;
}

.dashboard-private .list-group-item:hover,
.game-session .list-group-item:hover {
  background-color: #207ccb;


}

.dashboard-private .list-group-item:hover span {
  color: white;
}
.bg-dark-nav {
  background-color: var(--main-col) !important;
  background-image: var(--global-gradient);
}

.btn-primary {
  color: var(--text-color-on-dark);
  background-color: var(--button-color);
  border-color: var(--button-color);
}

.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active {
  background: transparent;
  border-color: transparent;
  border-bottom: 1px solid #dedede;
  color: var(--button-color);
}

.nav-menu-item {
  color: var(--text-color-on-dark);
}
#inline-menu-nav .nav-menu-item {
  color: var(--text-color);
}

.play-message-success {
  color: var(--text-color-on-dark);
}

.play-message-fail {
  color: var(--text-color-on-dark);
}

.locked{
  position: absolute;
  background: #000000a8;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
}

.locked-info{
  max-height: 300px;
  border-radius: 5px;
  overflow-y: scroll;
  padding: 5px;
}

.challenge-card .icon-eye{
  position: absolute;
  opacity: 0;
  transform: rotateZ(0deg);
  transition: all 0.5s ease-in-out;
}

.challenge-card .icon-lock_outline{
  position: absolute;
  opacity: 1;
  transform: rotateZ(0deg);
  transition: all 0.5s ease-in-out;
  
}

.challenge-card:hover .icon-eye{
  transform: rotateZ(360deg);
  transition: all 0.5s ease-in-out;
  opacity: 1;
 
}

.challenge-card:hover .icon-lock_outline{
  transform: rotateZ(360deg);
  transition: all 0.5s ease-in-out;
  opacity: 0;
}

.locked span {
  font-size: 3rem;
  border: 3px solid;
  border-radius: 50%;
  padding: 12px;
  opacity: 0.8;
}

.tutorial-locked span {
  border: 2px solid var(--text-color);
  border-radius: 50%;
  padding: 5px;
  margin-bottom: 3px;
  display: inline-block;
}

.active.nav-selector {
  color: var(--text-color-on-dark) !important;
  background-color: var(--button-color) !important;
  border-color: var(--button-color);
}

.nav-link {
  color: var(--text-color) !important;
}

/* .nav-link.active::after {
    content: "";
    height: 4px;
    display: block;
    background: var(--button-color);
    position: relative;
    top: 9px;
    animation: scaleX 300ms ease-in-out;
  } */

.card {
  background: transparent;
}

#game-play .game-bar {
  background: var(--background);
  box-shadow: 0 0 15px #0002;
}

.dashboard-stats-number {
  font-size: 1.5rem;
  color: var(--link-color);
}

.result-label {
  color: var(--link-color);
}

.dropdown-divider {
  border-top: 1px solid #e9ecef24;
}

.profile-username {
  color: var(--text-dark-color);
  font-weight: bold;
}
.profile-sub-username {
  color: var(--text-color);
  background: var(--background);
  padding: 3px 11px;
  border-radius: 30px;
  margin-bottom: 0.77rem;
  user-select: none;
}

.swal2-styled.swal2-confirm {
  background-color: var(--button-color) !important;
  color: #fff;
}

.swal2-styled.swal2-confirm:focus {
  box-shadow: 0 0 0 3px var(--element-color-primary) !important;
}

.dashboard-card .card-body {
  background: var(--secondary-background);
  background-repeat: no-repeat;
}

.my-position-leaderboard {
  background-image: var(--global-gradient) !important;
  color: white;
}

.dark-theme #left-sidebar {
  background: var(--secondary-background) !important;
}

.light-theme #left-sidebar {
  background: var(--secondary-background) !important;
}

#left-sidebar .active .item-name {
  color: var(--text-color-on-dark);
  font-size: 0.9rem;
}
#left-sidebar .list-group-item:hover .item-name {
  color: var(--text-color-on-dark);
  font-size: 0.9rem;
}
#left-sidebar .item-name {
  color: var(--text-color);
  font-size: 0.9rem;
  letter-spacing: 0.02rem;
  font-weight: bold;
}

.is-loading img,
.is-loading h2,
.is-loading p {
  background: #eee;
  background: linear-gradient(
    110deg,
    var(--secondary-background) 8%,
    var(--background) 18%,
    var(--secondary-background)
  );
  border-radius: 5px;
  background-size: 200% 100%;
  -webkit-animation: 1.5s shine linear infinite;
  animation: 1.5s shine linear infinite;
}

@-webkit-keyframes shine {
  to {
    background-position-x: -200%;
  }
}

@keyframes shine {
  to {
    background-position-x: -200%;
  }
}

#challenge-container {
  transition: width 1s ease-in-out, opacity 0.7s ease-in-out 0.3s,
    padding-left 0.7s ease-in-out 0.3s, padding-right 0.7s ease-in-out 0.3s;
}

.light {
  position: absolute;
  width: 0px;
  opacity: 0.75;
  background-color: red;
  box-shadow: #0189cd 0px 0px 20px 2px;
  opacity: 0;
  top: 100vh;
  bottom: 0px;
  left: 0px;
  right: 0px;
  margin: auto;
}

.x1 {
  -webkit-animation: floatUp 4s infinite linear;
  -moz-animation: floatUp 4s infinite linear;
  -o-animation: floatUp 4s infinite linear;
  animation: floatUp 4s infinite linear;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -o-transform: scale(1);
  transform: scale(1);
}

.x2 {
  -webkit-animation: floatUp 7s infinite linear;
  -moz-animation: floatUp 7s infinite linear;
  -o-animation: floatUp 7s infinite linear;
  animation: floatUp 7s infinite linear;
  -webkit-transform: scale(1.6);
  -moz-transform: scale(1.6);
  -o-transform: scale(1.6);
  transform: scale(1.6);
  left: 15%;
}

.x3 {
  -webkit-animation: floatUp 2.5s infinite linear;
  -moz-animation: floatUp 2.5s infinite linear;
  -o-animation: floatUp 2.5s infinite linear;
  animation: floatUp 2.5s infinite linear;
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  -o-transform: scale(0.5);
  transform: scale(0.5);
  left: -15%;
}

.x4 {
  -webkit-animation: floatUp 4.5s infinite linear;
  -moz-animation: floatUp 4.5s infinite linear;
  -o-animation: floatUp 4.5s infinite linear;
  animation: floatUp 4.5s infinite linear;
  -webkit-transform: scale(1.2);
  -moz-transform: scale(1.2);
  -o-transform: scale(1.2);
  transform: scale(1.2);
  left: -34%;
}

.x5 {
  -webkit-animation: floatUp 8s infinite linear;
  -moz-animation: floatUp 8s infinite linear;
  -o-animation: floatUp 8s infinite linear;
  animation: floatUp 8s infinite linear;
  -webkit-transform: scale(2.2);
  -moz-transform: scale(2.2);
  -o-transform: scale(2.2);
  transform: scale(2.2);
  left: -57%;
}

.x6 {
  -webkit-animation: floatUp 3s infinite linear;
  -moz-animation: floatUp 3s infinite linear;
  -o-animation: floatUp 3s infinite linear;
  animation: floatUp 3s infinite linear;
  -webkit-transform: scale(0.8);
  -moz-transform: scale(0.8);
  -o-transform: scale(0.8);
  transform: scale(0.8);
  left: -81%;
}

.x7 {
  -webkit-animation: floatUp 5.3s infinite linear;
  -moz-animation: floatUp 5.3s infinite linear;
  -o-animation: floatUp 5.3s infinite linear;
  animation: floatUp 5.3s infinite linear;
  -webkit-transform: scale(3.2);
  -moz-transform: scale(3.2);
  -o-transform: scale(3.2);
  transform: scale(3.2);
  left: 37%;
}

.x8 {
  -webkit-animation: floatUp 4.7s infinite linear;
  -moz-animation: floatUp 4.7s infinite linear;
  -o-animation: floatUp 4.7s infinite linear;
  animation: floatUp 4.7s infinite linear;
  -webkit-transform: scale(1.7);
  -moz-transform: scale(1.7);
  -o-transform: scale(1.7);
  transform: scale(1.7);
  left: 62%;
}

.x9 {
  -webkit-animation: floatUp 4.1s infinite linear;
  -moz-animation: floatUp 4.1s infinite linear;
  -o-animation: floatUp 4.1s infinite linear;
  animation: floatUp 4.1s infinite linear;
  -webkit-transform: scale(0.9);
  -moz-transform: scale(0.9);
  -o-transform: scale(0.9);
  transform: scale(0.9);
  left: 85%;
}

@-webkit-keyframes floatUp {
  0% {
    top: 100vh;
    opacity: 0;
  }

  25% {
    opacity: 1;
  }

  50% {
    top: 0vh;
    opacity: 0.8;
  }

  75% {
    opacity: 1;
  }

  100% {
    top: -100vh;
    opacity: 0;
  }
}

@-moz-keyframes floatUp {
  0% {
    top: 100vh;
    opacity: 0;
  }

  25% {
    opacity: 1;
  }

  50% {
    top: 0vh;
    opacity: 0.8;
  }

  75% {
    opacity: 1;
  }

  100% {
    top: -100vh;
    opacity: 0;
  }
}

@-o-keyframes floatUp {
  0% {
    top: 100vh;
    opacity: 0;
  }

  25% {
    opacity: 1;
  }

  50% {
    top: 0vh;
    opacity: 0.8;
  }

  75% {
    opacity: 1;
  }

  100% {
    top: -100vh;
    opacity: 0;
  }
}

@keyframes floatUp {
  0% {
    top: 100vh;
    opacity: 0;
  }

  25% {
    opacity: 1;
  }

  50% {
    top: 0vh;
    opacity: 0.8;
  }

  75% {
    opacity: 1;
  }

  100% {
    top: -100vh;
    opacity: 0;
  }
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-o-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-webkit-keyframes fadeOut {
  0% {
    opacity: 0;
  }

  30% {
    opacity: 1;
  }

  80% {
    opacity: 0.9;
  }

  100% {
    opacity: 0;
  }
}

@-moz-keyframes fadeOut {
  0% {
    opacity: 0;
  }

  30% {
    opacity: 1;
  }

  80% {
    opacity: 0.9;
  }

  100% {
    opacity: 0;
  }
}

@-o-keyframes fadeOut {
  0% {
    opacity: 0;
  }

  30% {
    opacity: 1;
  }

  80% {
    opacity: 0.9;
  }

  100% {
    opacity: 0;
  }
}

@keyframes fadeOut {
  0% {
    opacity: 0;
  }

  30% {
    opacity: 1;
  }

  80% {
    opacity: 0.9;
  }

  100% {
    opacity: 0;
  }
}

@-webkit-keyframes finalFade {
  0% {
    opacity: 0;
  }

  30% {
    opacity: 1;
  }

  80% {
    opacity: 0.9;
  }

  100% {
    opacity: 1;
  }
}

@-moz-keyframes finalFade {
  0% {
    opacity: 0;
  }

  30% {
    opacity: 1;
  }

  80% {
    opacity: 0.9;
  }

  100% {
    opacity: 1;
  }
}

@-o-keyframes finalFade {
  0% {
    opacity: 0;
  }

  30% {
    opacity: 1;
  }

  80% {
    opacity: 0.9;
  }

  100% {
    opacity: 1;
  }
}

@keyframes finalFade {
  0% {
    opacity: 0;
  }

  30% {
    opacity: 1;
  }

  80% {
    opacity: 0.9;
  }

  100% {
    opacity: 1;
  }
}

.play-game-topbar {
  background: var(--background);
}
