/* ilxdh-inspired hierarchical sidebar */
.oioiob-sidebar {
  position: sticky;
  top: 57px;
  align-self: start;
  height: calc(100vh - 57px);
  overflow: auto;
  padding: 16px 0 24px 12px;
  border-right: 1px solid var(--oioiob-border);
  background: var(--oioiob-surface);
}

.oioiob-nav-tree { display: flex; flex-direction: column; gap: 4px; }

.oioiob-nav-item,
.oioiob-nav-child {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 0.9375rem;
  color: var(--oioiob-text);
}

.oioiob-nav-item:hover,
.oioiob-nav-child:hover { background: var(--oioiob-accent-soft); }

.oioiob-nav-item.is-active,
.oioiob-nav-child.is-active {
  background: var(--oioiob-accent-soft);
  color: var(--oioiob-accent);
  font-weight: 600;
}

.oioiob-nav-icon {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: var(--oioiob-bg);
  font-size: 0.75rem;
  font-weight: 700;
}

.oioiob-nav-children {
  margin: 2px 0 8px 18px;
  padding-left: 12px;
  border-left: 3px solid var(--oioiob-mark);
}

.oioiob-nav-child {
  padding: 8px 12px;
  font-size: 0.875rem;
  color: var(--oioiob-muted);
}

.oioiob-nav-child.is-active { color: var(--oioiob-accent); }

.oioiob-nav-group:not(.is-open) .oioiob-nav-children { display: none; }

@media (max-width: 960px) {
  .oioiob-sidebar {
    position: fixed;
    inset: 57px 0 0 0;
    z-index: 30;
    width: min(320px, 85vw);
    transform: translateX(-100%);
    transition: transform .2s ease;
    box-shadow: 4px 0 24px rgba(0, 0, 0, .08);
  }
  .oioiob-sidebar.is-open { transform: translateX(0); }
}

.oioiob-sidebar-backdrop {
  position: fixed;
  inset: 57px 0 0 0;
  z-index: 25;
  background: rgba(0, 0, 0, .35);
}

.oioiob-sidebar-backdrop:not([hidden]) { display: block; }
