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

#toc_container.no_bullets li,
#toc_container.no_bullets ul,
#toc_container.no_bullets ul li {
  background: 0 0;
  list-style-type: none;
  list-style: none;
}

#toc_container.have_bullets li {
  padding-left: 12px;
}

#toc_container ul ul {
  margin-left: 1.5em;
}

#toc_container {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 16px 20px;
  margin-bottom: 1.5em;
  width: auto;
  display: table;
  max-width: 100%;
  font-size: 95%;
  box-shadow: 0 2px 12px rgba(13, 43, 78, 0.06);
}

#toc_container p.toc_title {
  text-align: left;
  font-weight: 700;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0.5em;
  color: #0d2b4e;
  font-size: 1.05em;
}

#toc_container span.toc_toggle {
  font-weight: 400;
  font-size: 90%;
}

#toc_container p.toc_title + .toc_list,
#toc_container p.toc_title + ul.toc_list {
  margin-top: 1em;
}

#toc_container a {
  text-decoration: none;
  text-shadow: none;
  color: #ff2d8a;
  transition: color 0.2s ease;
}

#toc_container a:hover {
  text-decoration: underline;
  color: #ff5cad;
}

.toc-toggle-label {
  display: inline-flex;
  align-items: center;
  margin-left: auto;
  cursor: pointer;
}

.toc-toggle-checkbox {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: #ff2d8a;
}

#toc_container .toc_list {
  display: none;
}

#toc_container.toc-open .toc_list {
  display: block;
}

#toc_container > ul {
  display: none;
  margin-top: 1em;
}

#toc_container.toc-open > ul {
  display: block;
}

#toc_container > p {
  display: flex;
  align-items: center;
  gap: 0.5em;
  font-weight: 700;
  margin: 0;
  color: #0d2b4e;
}

#toc_container li {
  padding: 4px 0;
  line-height: 1.5;
}

#toc_container li a {
  color: #475569;
}

#toc_container li a:hover {
  color: #ff2d8a;
}

div#toc_container {
  background: #ffffff;
  border: 1px solid #e2e8f0;
}

@media (max-width: 768px) {
  #toc_container {
    display: block;
    width: 100%;
    padding: 14px 16px;
    border-radius: 12px;
    font-size: 92%;
  }
}
