/* Sidebar: one selection style, one nest step, aligned labels (mdBook 0.5) */

.sidebar .chapter {
  --nav-fg: var(--sidebar-fg, #c8c9db);
  --nav-accent: var(--sidebar-active, #66b3ff);
  --nav-rail: color-mix(in srgb, var(--nav-fg) 45%, transparent);
  --nav-hover: color-mix(in srgb, var(--nav-fg) 10%, transparent);
  --nav-active: color-mix(in srgb, var(--nav-accent) 22%, transparent);
  --nav-inset: 0.7rem;
  --nav-ribbon: 3px;
  --nav-chevron: 0.5rem;
  --nav-chevron-col: 1.05rem;
  --nav-gap: 0.28rem;
  /* Label column after chevron — leaves reserve the same width */
  --nav-label-col: calc(var(--nav-chevron-col) + var(--nav-gap));
  /* One indent per fold level (rail + space before children) */
  --nav-nest: 0.85rem;
  /* Space after the selection ribbon before the chevron */
  --nav-icon-gap: 0.4rem;
}

.sidebar .sidebar-scrollbox {
  padding: 0.75rem 0.55rem 1rem 0 !important;
}

/* —— Part titles —— */
.sidebar .chapter li.part-title {
  margin: 1.35rem 0.55rem 0.4rem var(--nav-inset);
  padding: 0.55rem 0.15rem 0.3rem;
  border-top: 1px solid var(--nav-rail);
  color: var(--nav-fg) !important;
  font-size: 0.68em;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 1;
  line-height: 1.2;
}

.sidebar .chapter > .chapter-item:nth-child(2) .part-title {
  margin-top: 0.45rem;
  border-top: none;
  padding-top: 0.1rem;
}

.sidebar .chapter > .chapter-item:first-child > .chapter-link-wrapper {
  padding-inline-start: var(--nav-inset);
  margin-inline-end: 0.3rem;
}

/* —— Shared row chrome —— */
.sidebar .chapter li.chapter-item {
  margin-block-start: 0.04rem;
  color: var(--nav-fg);
}

.sidebar .chapter-link-wrapper {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--nav-gap);
  margin-inline-end: 0.3rem;
  padding: 0.28rem 0.4rem 0.28rem calc(var(--nav-inset) - var(--nav-ribbon));
  border-inline-start: var(--nav-ribbon) solid transparent;
  border-radius: 0 5px 5px 0;
  line-height: 1.3;
  text-align: start;
  box-sizing: border-box;
  background: transparent;
}

.sidebar .chapter li a {
  color: var(--nav-fg);
  opacity: 1;
}

.sidebar .chapter li a:hover {
  color: var(--nav-accent);
}

/* Root leaf — same label start as root fold titles */
.sidebar .chapter > .chapter-item:not(.nav-group) > .chapter-link-wrapper {
  padding-inline-start: calc(var(--nav-inset) - var(--nav-ribbon) + var(--nav-label-col));
}

.sidebar .chapter > .chapter-item:not(.nav-group) > .chapter-link-wrapper:hover {
  background: var(--nav-hover);
}

/* —— Fold rows (page + children) —— */
.sidebar .chapter-item.nav-group > .chapter-link-wrapper {
  display: grid !important;
  grid-template-columns: var(--nav-chevron-col) minmax(0, 1fr);
  column-gap: var(--nav-gap);
  cursor: pointer;
  font-weight: 600;
}

.sidebar .chapter-item.nav-group > .chapter-link-wrapper:hover {
  background: var(--nav-hover);
}

/* Quiet when open — unless this fold’s own page is active */
.sidebar .chapter-item.nav-group.expanded > .chapter-link-wrapper:not(:has(> a.active)) {
  background: transparent;
  border-inline-start-color: transparent;
}

.sidebar .chapter-item.nav-group > .chapter-link-wrapper > .chapter-fold-toggle {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--nav-chevron-col);
  height: var(--nav-chevron-col);
  margin: 0 !important;
  padding: 0 !important;
  color: transparent !important;
  opacity: 1;
  flex: none;
  position: relative;
  overflow: hidden;
}

.sidebar .chapter-item.nav-group > .chapter-link-wrapper > .chapter-fold-toggle::before {
  content: "";
  display: block;
  width: var(--nav-chevron);
  height: var(--nav-chevron);
  border-inline-end: 1.5px solid var(--nav-fg);
  border-bottom: 1.5px solid var(--nav-fg);
  transform: rotate(-45deg);
  opacity: 0.7;
  transition: transform 0.12s ease, opacity 0.12s ease;
}

.sidebar .chapter-item.nav-group.expanded > .chapter-link-wrapper > .chapter-fold-toggle::before {
  transform: rotate(45deg);
  opacity: 0.9;
}

.sidebar .chapter-item.nav-group > .chapter-link-wrapper > .chapter-fold-toggle div,
.sidebar .chapter-item.nav-group > .chapter-link-wrapper > .chapter-fold-toggle svg {
  display: none !important;
}

.sidebar .chapter-item.nav-group > .chapter-link-wrapper > :not(.chapter-fold-toggle) {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  padding: 0;
  min-width: 0;
  text-align: start;
  user-select: none;
  color: var(--nav-fg);
  opacity: 1;
}

.sidebar .chapter-item.nav-group:hover > .chapter-link-wrapper > .chapter-fold-toggle::before {
  opacity: 1;
  border-color: var(--nav-accent);
}

/* —— Nested list: rail under parent chevron, one nest unit —— */
.sidebar .chapter-item.nav-group > .section {
  margin: 0.1rem 0.35rem 0.35rem 0;
  margin-inline-start: calc(var(--nav-inset) + var(--nav-chevron-col) * 0.45);
  padding: 0.08rem 0 0.15rem var(--nav-nest) !important;
  border-inline-start: 2px solid var(--nav-rail);
  border-radius: 0;
  line-height: 1.35em !important;
  background: transparent;
}

.sidebar .section .chapter-item.nav-group > .section {
  margin-inline-start: calc(var(--nav-chevron-col) * 0.45);
}

.sidebar .section .chapter-link-wrapper {
  margin-inline-end: 0.25rem;
  padding: 0.22rem 0.35rem 0.22rem 0;
  border-inline-start: var(--nav-ribbon) solid transparent;
  border-radius: 0 5px 5px 0;
  background: transparent;
}

.sidebar .section .chapter-link-wrapper:hover {
  background: var(--nav-hover);
}

.sidebar .section .chapter-link-wrapper > a {
  font-size: 0.93em;
  font-weight: 400;
  color: var(--nav-fg);
  opacity: 0.95;
}

/*
 * Same depth = same label start.
 * Leaves reserve the chevron column; folds put the chevron there.
 * icon-gap keeps the chevron clear of the selection ribbon.
 */
.sidebar .section > .chapter-item:not(.nav-group) > .chapter-link-wrapper {
  padding-inline-start: calc(var(--nav-icon-gap) + var(--nav-label-col));
}

.sidebar .section .chapter-item.nav-group > .chapter-link-wrapper {
  font-size: 0.96em;
  padding-inline-start: var(--nav-icon-gap);
}

.sidebar .section .chapter-item.nav-group.expanded > .chapter-link-wrapper:not(:has(> a.active)) {
  border-inline-start-color: transparent;
  background: transparent;
}

/* —— Active page: same pill + ribbon for leaves and fold pages —— */
.sidebar .chapter a.active {
  font-weight: 600;
  color: var(--nav-accent) !important;
  opacity: 1;
}

.sidebar .chapter-link-wrapper:has(> a.active) {
  background: var(--nav-active) !important;
  border-inline-start-color: var(--nav-accent) !important;
}

/* Active fold: chevron picks up accent too */
.sidebar .chapter-item.nav-group > .chapter-link-wrapper:has(> a.active) > .chapter-fold-toggle::before {
  border-color: var(--nav-accent);
  opacity: 1;
}

/* In-page TOC under the current chapter — hide from sidebar */
.sidebar .on-this-page {
  display: none !important;
}
