body {
  min-height: 100vh;
}

.sidebar {
  width: 260px;
  min-height: 100vh;
}

.sidebar .nav-link {
  color: #adb5bd;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active {
  color: #fff;
  background-color: #0d6efd;
}

.sidebar .nav-link[data-bs-toggle="collapse"]::after {
  content: "▸";
  float: right;
  transition: transform .2s ease;
}

.sidebar .nav-link[data-bs-toggle="collapse"][aria-expanded="true"]::after {
  transform: rotate(90deg);
}

body {
  background: white;
  color: black;
  overflow: auto;
}

.slide {
  display: none;
  height: auto;
  padding: 4rem;
  margin-bottom: 300px;
}

.slide.active {
  display: flex;
}

.slide-content {
  margin: 0 auto;
  max-width: 960px;
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

pre {
  background: #ccc;
  padding: 1rem;
  border-radius: 6px;
}

.nav-controls {
  position: fixed;
  bottom: 26px;
  left: calc(50% + 130px);
  transform: translateX(-50%);
}

.progress-container {
  position: fixed;
  bottom: 0;
  left: 260px;
  width: calc(100% - 260px);
  height: 6px;
  background: #ddd;
}

.progress-bar {
  height: 100%;
  background: linear-gradient(90deg, #0d6efd, #6ea8fe);
  width: 0%;
  transition: width 0.3s ease;
}

.slide-counter {
  position: fixed;
  top: 18px;
  right: 20px;
  font-size: 0.85rem;
  opacity: 0.6;
}

.spoiler-block {
  border: 1px solid #444;
  border-radius: 6px;
  padding: 0.5rem;
  margin: 1rem 0;
  background: #1e1e1e;
  color: white;
}

.spoiler-toggle {
  background: none;
  border: none;
  color: #9cdcfe;
  cursor: pointer;
  padding: 0;
  font-weight: bold;
}

.spoiler-content {
  display: none;
  margin-top: 0.5rem;
}

.spoiler-block.open .spoiler-content {
  display: block;
}

.spoiler-content pre code {
  color: black;
}

