/* 多级树形导航、翻页、锁定状态 */
.nav-tree {
  display: flex;
  flex-direction: column;
}

/* ===== 导航项 ===== */
.nav-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 9px 12px;
  margin-bottom: 2px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  color: var(--text-2);
  text-align: left;
  transition: background var(--dur-fast) var(--ease-smooth),
    color var(--dur-fast) var(--ease-smooth);
}

.nav-item:hover {
  color: var(--text-1);
  background: var(--glass-bg);
}

.nav-item:hover .nav-item-label {
  transform: translateX(2px);
}

.nav-item-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  transition: transform var(--dur-mid) var(--ease-smooth);
}

/* ===== 激活态：渐变底 + 左侧品牌指示条弹簧生长 ===== */
.nav-item.is-active {
  color: var(--accent);
  font-weight: 700;
  background: linear-gradient(90deg, var(--accent-soft), transparent 92%);
}

.nav-item.is-active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 24%;
  height: 52%;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--grad-brand);
  box-shadow: 0 0 10px var(--accent-glow);
  transform-origin: top;
  animation: nav-indicator-in 0.45s var(--ease-spring);
}

@keyframes nav-indicator-in {
  from {
    transform: scaleY(0);
    opacity: 0;
  }
  to {
    transform: scaleY(1);
    opacity: 1;
  }
}

/* ===== 展开箭头（扩大点击热区 + 悬浮反馈） ===== */
.nav-item-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-left: -4px;
  border-radius: 6px;
  color: var(--text-3);
  cursor: pointer;
  transition: transform 0.38s var(--ease-spring), color var(--dur-fast),
    background var(--dur-fast);
}

.nav-item-chevron:hover {
  color: var(--accent);
  background: var(--accent-soft);
}

.nav-item.is-open .nav-item-chevron {
  transform: rotate(90deg);
  color: var(--accent);
}

/* ===== 网站计数徽标 ===== */
.nav-count {
  flex-shrink: 0;
  min-width: 20px;
  padding: 1px 7px;
  border-radius: 999px;
  font-family: var(--font-num);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--text-3);
  background: var(--glass-bg);
  border: 1px solid var(--divider);
  text-align: center;
  font-variant-numeric: tabular-nums;
  transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);
}

.nav-item:hover .nav-count {
  color: var(--text-2);
}

.nav-item.is-active .nav-count {
  color: var(--accent);
  background: var(--accent-soft);
  border-color: var(--accent-glow);
}

.nav-item-lock-badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 10px;
  color: var(--text-3);
}

.nav-item-lock-badge svg {
  width: 12px;
  height: 12px;
}

.nav-item.is-unlocked .nav-item-lock-badge {
  color: var(--accent);
}

/* ===== 子级容器：grid 高度动画（0fr/1fr 过渡） ===== */
.nav-children {
  position: relative;
  display: grid;
  grid-template-rows: 1fr;
  margin-left: 17px;
  padding-left: 12px;
  opacity: 1;
  transition: grid-template-rows 0.42s var(--ease-spring), opacity 0.3s var(--ease-smooth);
}

.nav-children.collapsed {
  grid-template-rows: 0fr;
  opacity: 0;
}

/* 动画关键：overflow 裁剪放在内层，外层负责 0fr/1fr 高度过渡 */
.nav-children-inner {
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* 层级导轨线（容器高度为 0 时自然消失） */
.nav-children::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 4px;
  width: 2px;
  border-radius: 2px;
  background: var(--divider);
}

/* 展开时子级错峰入场 */
.nav-children.entering .nav-item {
  animation: nav-child-in 0.32s var(--ease-smooth) backwards;
}

.nav-children.entering .nav-item:nth-child(1) { animation-delay: 0.02s; }
.nav-children.entering .nav-item:nth-child(2) { animation-delay: 0.06s; }
.nav-children.entering .nav-item:nth-child(3) { animation-delay: 0.1s; }
.nav-children.entering .nav-item:nth-child(4) { animation-delay: 0.14s; }
.nav-children.entering .nav-item:nth-child(5) { animation-delay: 0.18s; }
.nav-children.entering .nav-item:nth-child(n + 6) { animation-delay: 0.22s; }

@keyframes nav-child-in {
  from {
    opacity: 0;
    transform: translateX(-8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* 初始载入：顶级节点轻微错峰（数据刷新重渲染时同样生效） */
.nav-tree > .nav-item,
.nav-tree > .nav-children {
  animation: nav-child-in 0.4s var(--ease-smooth) backwards;
}

.nav-tree > :nth-child(1) { animation-delay: 0.02s; }
.nav-tree > :nth-child(2) { animation-delay: 0.06s; }
.nav-tree > :nth-child(3) { animation-delay: 0.1s; }
.nav-tree > :nth-child(4) { animation-delay: 0.14s; }
.nav-tree > :nth-child(5) { animation-delay: 0.18s; }
.nav-tree > :nth-child(6) { animation-delay: 0.22s; }
.nav-tree > :nth-child(n + 7) { animation-delay: 0.26s; }

/* ===== 翻页器 ===== */
.nav-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding-top: 10px;
  margin-top: 6px;
  border-top: 1px solid var(--divider);
}

.nav-pager-btn {
  width: 28px;
  height: 28px;
  border-radius: 9px;
}

.nav-pager-btn svg {
  width: 14px;
  height: 14px;
}

.nav-pager-label {
  font-size: 12px;
  color: var(--text-3);
  letter-spacing: 1px;
  min-width: 34px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.nav-pager-dots {
  display: flex;
  gap: 5px;
}

.nav-pager-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--divider);
  transition: all var(--dur-fast);
  cursor: pointer;
}

.nav-pager-dot.is-current {
  background: var(--accent);
  transform: scale(1.25);
}
