/* Duco-style sticky left rail sidebar styles
 *
 * The sidebar structure is:
 *   <aside class="fvi-doc-sidebar" data-fvi-sidebar></aside>
 *
 * Sidebar.js (sidebar.js) injects the populated nav. This file scopes the
 * visual rules so sidebar.js can stay declarative.
 */
.fvi-doc-sidebar {
  position: sticky;
  top: 76px;
  align-self: start;
  max-height: calc(100vh - 96px);
  overflow-y: auto;
  padding: 8px 0 32px;
  font-size: 13px;
}
.fvi-doc-sidebar a {
  display: block;
  padding: 7px 10px 7px 14px;
  font-size: 13px;
  color: var(--fvi-text-soft);
  text-decoration: none;
  border-radius: var(--fvi-radius-xs);
  line-height: 1.4;
  transition: background var(--fvi-trans-fast), color var(--fvi-trans-fast);
  margin: 1px 0;
}
.fvi-doc-sidebar a:hover { background: var(--fvi-bg-alt); color: var(--fvi-primary); }
.fvi-doc-sidebar a.is-active {
  background: var(--fvi-accent-soft);
  color: var(--fvi-primary);
  font-weight: 600;
  box-shadow: inset 2px 0 0 var(--fvi-accent);
}

/* Mega sidebar (category index pages) */
.fvi-doc-sidebar .fvi-doc-sidebar__group { margin-bottom: 4px; }
.fvi-doc-sidebar .fvi-doc-sidebar__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 10px 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--fvi-text-faint);
  font-weight: 700;
  margin-top: 0;
  border-radius: 0;
  cursor: pointer;
  user-select: none;
}
.fvi-doc-sidebar .fvi-doc-sidebar__heading:hover { color: var(--fvi-primary); background: var(--fvi-bg-alt); }
.fvi-doc-sidebar .fvi-doc-sidebar__heading[data-active="true"] { color: var(--fvi-accent-deep); }
.fvi-doc-sidebar__group ul {
  list-style: none;
  margin: 0 0 8px;
  padding: 0 0 8px 12px;
  border-left: 1px solid var(--fvi-border);
  margin-left: 12px;
}
.fvi-doc-sidebar__group.is-collapsed > ul { display: none; }
.fvi-doc-sidebar__group.is-collapsed > .fvi-doc-sidebar__heading::after { content: '+'; }
.fvi-doc-sidebar__group > .fvi-doc-sidebar__heading::after { content: '−'; }
.fvi-doc-sidebar__group > .fvi-doc-sidebar__heading::after {
  font-size: 14px;
  font-weight: 400;
  color: var(--fvi-text-faint);
  transition: transform var(--fvi-trans-elastic);
}
