/* Body */
body.dark-mode {
  background: #121212 !important;
  color: #f1f1f1;
}

/* Navbar */
body.dark-mode .navbar {
  background-color: #212529;
}
body.dark-mode .navbar .nav-link,
body.dark-mode .navbar .navbar-brand {
  color: #f1f1f1 !important;
}

/* Footer */
body.dark-mode footer {
  background-color: #121212;
  color: #ccc;
  border-top: 1px solid #444;
}
body.dark-mode footer,
body.dark-mode footer.text-muted {
  color: #fff !important;
}
body.dark-mode footer a {
  color: #9ecfff;
}

/* Carousel section dark mode */
body.dark-mode .carousel-section {
  background-color: #1c1c1c;
  border-radius: 1rem;
  padding: 2rem 0;
  margin: 2rem 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  position: relative;
  overflow: hidden;
  animation: fadeInSlide 0.8s ease both;
}
body.dark-mode .carousel-section::before,
body.dark-mode .carousel-section::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(to right, transparent, #444, transparent);
}
body.dark-mode .carousel-section::before {
  top: 0;
}
body.dark-mode .carousel-section::after {
  bottom: 0;
}

/* Cards */
body.dark-mode .card {
  background-color: #1e1e1e;
  color: #f1f1f1;
  background-image: none;
}
body.dark-mode .card h1,
body.dark-mode .card h2,
body.dark-mode .card h3,
body.dark-mode .card .form-label {
  color: #f1f1f1;
}

/* My Notes bullets */
body.dark-mode .list-group-item.custom-note {
  position: relative;
  padding-left: 2rem;
  border: none;
  background: transparent;
  box-shadow: none;
}
body.dark-mode .list-group-item.custom-note::before {
  content: "•";
  position: absolute;
  left: 0.75rem;
  color: #9ecfff;
  font-size: 1.2rem;
}

/* List group general */
body.dark-mode .list-group-item {
  background-color: #1e1e1e;
  color: #f1f1f1;
}

/* Forms */
body.dark-mode .form-control,
body.dark-mode .form-select {
  background-color: #2c2c2c;
  color: #f1f1f1;
  border-color: #555;
}
body.dark-mode .form-control::placeholder {
  color: #bbb;
}
body.dark-mode .form-select option {
  background-color: #2c2c2c;
  color: #f1f1f1;
}

/* Swiper arrows */
body.dark-mode .swiper-button-next,
body.dark-mode .swiper-button-prev {
  filter: invert(1);
}

/* Buttons */
body.dark-mode .btn-primary {
  background-color: #3f51b5;
  border-color: #3f51b5;
}
body.dark-mode .btn-primary:hover {
  background-color: #5c6bc0;
  border-color: #5c6bc0;
}

/* Utility text colors override */
body.dark-mode .text-dark,
body.dark-mode .text-primary,
body.dark-mode .text-secondary,
body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3,
body.dark-mode h4,
body.dark-mode h5,
body.dark-mode h6,
body.dark-mode p {
  color: #f1f1f1 !important;
}

/* Rating number visibility */
body.dark-mode .rating-text,
body.dark-mode .text-muted {
  color: #e0e0e0 !important;
}

/* Carousel fade in animation */
@keyframes fadeInSlide {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
