#season-toc {
  margin: 30px 0;
  padding: 24px;
  border: 1px solid #f57800;
  border-radius: 8px;
  background: #fffaf5;
}
#season-toc[hidden],
#season-toc-floating[hidden] {
  display: none;
}
#season-toc .season-toc-title {
  display: block;
  margin: 0;
  font-size: 1.2em;
  font-weight: bold;
  color: #333;
}
#season-toc ul,
#season-toc-floating ul {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
#season-toc li,
#season-toc-floating li {
  margin: 0;
  padding: 0;
}
#season-toc a,
#season-toc-floating a {
  display: block;
  position: relative;
  padding: 10px 32px 10px 0;
  border-bottom: 1px solid #f5d8be;
  color: #333;
  font-weight: normal;
  line-height: 1.6;
  text-decoration: none;
  overflow-wrap: anywhere;
}
#season-toc .season-toc-item-title,
#season-toc-floating .season-toc-item-title {
  display: block;
  font-weight: bold;
}
#season-toc .season-toc-item-description,
#season-toc-floating .season-toc-item-description {
  display: block;
  margin-top: 4px;
  color: #666;
  font-size: 0.85em;
  font-weight: normal;
  line-height: 1.6;
}
#season-toc a::after,
#season-toc-floating a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  width: 8px;
  height: 8px;
  box-sizing: border-box;
  border-right: 2px solid #f57800;
  border-bottom: 2px solid #f57800;
  transform: translateY(-50%) rotate(45deg);
  pointer-events: none;
}
#season-toc a:hover,
#season-toc-floating a:hover {
  text-decoration: none;
}
#season-toc a:hover .season-toc-item-title,
#season-toc-floating a:hover .season-toc-item-title {
  color: #f57800;
}
#season-toc a:focus-visible,
#season-toc-floating a:focus-visible {
  outline: 2px solid #f57800;
  outline-offset: 3px;
}
#main .season-toc-target {
  scroll-margin-top: var(--season-anchor-offset, 140px);
}
#season-toc summary,
#season-toc-floating summary {
  position: relative;
  padding-right: 30px;
  cursor: pointer;
  list-style: none;
}
#season-toc summary::-webkit-details-marker,
#season-toc-floating summary::-webkit-details-marker {
  display: none;
}
#season-toc summary::after,
#season-toc-floating summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 0;
  color: #f57800;
  font-size: 24px;
  line-height: 1;
}
#season-toc details[open] > summary::after,
#season-toc-floating details[open] > summary::after {
  content: "−";
}
#season-toc .season-toc-description {
  display: block;
  margin-top: 8px;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.7;
  color: #444;
}
#season-toc details[open] > ul {
  margin-top: 16px;
}
#season-toc-floating {
  --season-floating-available-height: var(--season-floating-height, calc(100dvh - 160px));
  position: fixed;
  top: var(--season-floating-top, 140px);
  right: 16px;
  z-index: 100;
  width: 320px;
  max-width: calc(100vw - 32px);
  max-height: var(--season-floating-available-height);
  overflow-y: auto;
  box-sizing: border-box;
  padding: 16px;
  border: 1px solid #f57800;
  border-radius: 8px;
  background: #fffaf5;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.15);
}
#season-toc-floating summary {
  font-weight: bold;
  color: #333;
}
#season-toc-floating ul {
  max-height: max(
    0px,
    calc(
      var(--season-floating-available-height) -
        var(--season-floating-summary-height, 26px) - 46px
    )
  );
  overflow-y: auto;
  overscroll-behavior: contain;
  margin-top: 12px;
  gap: 4px;
  font-size: 14px;
}
#season-toc-floating:has(details:not([open])) {
  width: 120px;
}
#season-toc-floating.season-toc-compact {
  --season-floating-available-height: max(64px, calc(100dvh - var(--season-floating-top, 140px) - 16px));
  z-index: 10000;
}
@media (hover: hover) and (pointer: fine) {
  #season-toc-floating:hover {
    --season-floating-available-height: max(0px, calc(100dvh - var(--season-floating-top, 140px) - 16px));
    z-index: 10000;
  }
}
@media screen and (max-width: 767px) {
  #season-toc {
    padding: 18px;
  }
  #season-toc ul {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
}
