/*
 * Sidebar navigation is deliberately motionless on touch devices.
 * The active-page colour remains, but pressing a menu item must never scale,
 * shake, flash, or animate the sidebar.
 */
.sancay-vault-theme .vault-navlink,
.sancay-vault-theme .vault-navlink:hover,
.sancay-vault-theme .vault-navlink:active,
.sancay-vault-theme .vault-navlink:focus,
.sancay-vault-theme .vault-navlink:focus-visible {
  -webkit-tap-highlight-color: transparent !important;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
  transform: none !important;
  transition: none !important;
  animation: none !important;
  filter: none !important;
}

/* Keep the selected menu item visually stable even while it is pressed. */
.sancay-vault-theme .vault-navlink:not(.vault-navlink-active):active {
  background-color: transparent !important;
  color: var(--vault-text-muted) !important;
}

.sancay-vault-theme .vault-navlink.vault-navlink-active:active {
  background-color: var(--vault-accent-glow) !important;
  color: var(--vault-accent) !important;
}

/* Admin-only mirror: the original React list stays mounted for routing/addons. */
.sancay-vault-theme aside nav.scy-admin-sidebar > ul {
  display: none !important;
}
.sancay-vault-theme aside nav.scy-admin-sidebar {
  min-height: 0;
  overscroll-behavior: contain;
}
.scy-admin-sidebar .scy-sidebar-tree {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: 12px;
}
.scy-admin-sidebar .scy-sidebar-group {
  border: 1px solid transparent;
  border-radius: 7px;
}
.scy-admin-sidebar .scy-sidebar-group[data-open="true"] {
  border-color: var(--vault-border, rgba(180, 180, 180, .13));
  background: rgba(140, 140, 140, .035);
}
.scy-admin-sidebar .scy-sidebar-link,
.scy-admin-sidebar .scy-sidebar-heading {
  width: 100%;
  min-height: 37px;
  padding: 8px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 5px;
  background: transparent;
  color: var(--vault-text-muted);
  text-align: left;
  font-size: 13px;
  font-weight: 550;
  line-height: 1.25;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.scy-admin-sidebar .scy-sidebar-link:hover,
.scy-admin-sidebar .scy-sidebar-heading:hover,
.scy-admin-sidebar .scy-sidebar-heading[data-open="true"] {
  background: var(--vault-accent-glow);
  color: var(--vault-accent);
}
.scy-admin-sidebar .scy-sidebar-link[aria-current="page"] {
  color: var(--vault-accent);
  background: var(--vault-accent-glow);
  font-weight: 700;
  box-shadow: inset 2px 0 var(--vault-accent);
}
.scy-admin-sidebar .scy-sidebar-link:focus-visible,
.scy-admin-sidebar .scy-sidebar-heading:focus-visible {
  outline: 2px solid var(--vault-accent);
  outline-offset: -2px;
}
.scy-admin-sidebar .scy-sidebar-children {
  padding: 2px 0 5px 17px;
}
.scy-admin-sidebar .scy-sidebar-children .scy-sidebar-link {
  min-height: 34px;
  font-size: 12px;
  padding: 7px 9px;
}
.scy-admin-sidebar .scy-sidebar-label {
  flex: 1;
  min-width: 0;
}
.scy-admin-sidebar .scy-sidebar-chevron {
  font-size: 12px;
  opacity: .75;
}
.scy-admin-sidebar .scy-sidebar-badge {
  border-radius: 999px;
  background: #ef4444;
  color: white;
  font-size: 10px;
  line-height: 1;
  padding: 3px 5px;
}
.sancay-vault-theme aside:has(> div > nav.scy-admin-sidebar) > div > div:last-child {
  padding-top: 9px;
  padding-bottom: 9px;
  gap: 7px;
}
.sancay-vault-theme aside:has(> div > nav.scy-admin-sidebar) > div > div:last-child > button {
  padding-top: 7px;
  padding-bottom: 7px;
  font-size: 12px;
}
@media (max-width: 1023px) {
  .scy-admin-sidebar .scy-sidebar-link,
  .scy-admin-sidebar .scy-sidebar-heading,
  .scy-admin-sidebar .scy-sidebar-children .scy-sidebar-link {
    min-height: 44px;
  }
  .sancay-vault-theme aside:has(> div > nav.scy-admin-sidebar) > div > div:last-child > button {
    min-height: 44px;
  }
}