/* Active item highlight — a flat horizontal gradient pill behind the row,
   copied 1:1 from the "Sidebar Alternatives" design (no left accent bar:
   the design doesn't have one). */
.sidebar .sidebar-body .nav > .nav-item.active > .nav-link {
  background-image: linear-gradient(90deg, rgba(var(--bs-primary-rgb), 0.14), rgba(var(--bs-primary-rgb), 0.02));
  color: #7c86ff;
  font-weight: 700;
}

[data-bs-theme="dark"] .sidebar .sidebar-body .nav > .nav-item.active > .nav-link {
  background-image: linear-gradient(90deg, rgba(var(--bs-primary-rgb), 0.28), rgba(var(--bs-primary-rgb), 0.04));
}

.sidebar .sidebar-body .nav > .nav-item.active > .nav-link .link-icon {
  color: #7c86ff;
}

/* Sidebar redesign — brand mark, icon-only collapse toggle, and a tighter
   nav-row scale (font size, padding, icon size) copied from the "Sidebar
   Alternatives" design. Header height stays at the framework's 60px so its
   bottom border still lines up with the top navbar's; everything else
   (padding, gaps, radii, type scale) matches the design 1:1. */

.sidebar .sidebar-header {
  justify-content: flex-start;
  padding: 0 16px;
  gap: 8px;
}

.sidebar .sidebar-header .brand-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--bs-primary);
  color: #fff;
  font-weight: 900;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  text-decoration: none;
}

.sidebar .sidebar-header .sidebar-brand {
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}

.sidebar .sidebar-header .sidebar-brand span {
  font-weight: 700;
}

.sidebar .sidebar-header .sidebar-toggler {
  width: 30px;
  height: 30px;
  border: none;
  border-radius: 8px;
  padding: 0;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.sidebar .sidebar-header .sidebar-toggler-icon {
  width: 16px;
  height: 16px;
}

.sidebar .sidebar-header .sidebar-toggler-icon-collapsed {
  display: none;
}

.sidebar-folded .sidebar .sidebar-header .sidebar-toggler-icon-open {
  display: none;
}

.sidebar-folded .sidebar .sidebar-header .sidebar-toggler-icon-collapsed {
  display: block;
}

.sidebar-folded .sidebar .sidebar-header .brand-icon,
.sidebar-folded .sidebar .sidebar-header .sidebar-brand {
  display: none;
}

.sidebar-folded .sidebar .sidebar-header {
  justify-content: center;
}

.sidebar-folded .sidebar .sidebar-header .sidebar-toggler {
  margin-left: 0;
}

/* Outer list gutter — the design wraps its nav list in 8px 8px 16px, not
   the framework's 25px. */
.sidebar .sidebar-body .nav {
  padding: 8px 8px 16px;
}

/* Nav rows (.sb-link in the design) */
.sidebar .sidebar-body .nav .nav-item .nav-link {
  gap: 10px;
  padding: 9px 13px;
  border-radius: 9px;
  height: auto;
  font-size: 13.5px;
  font-weight: 400;
  color: #3d4457;
}

[data-bs-theme="dark"] .sidebar .sidebar-body .nav .nav-item .nav-link {
  color: #a6adc4;
}

.sidebar .sidebar-body .nav .nav-item:hover .nav-link:not([data-bs-toggle="collapse"]):not(.active) {
  color: #3d4457;
}

[data-bs-theme="dark"] .sidebar .sidebar-body .nav .nav-item:hover .nav-link:not([data-bs-toggle="collapse"]):not(.active) {
  color: #a6adc4;
}

.sidebar .sidebar-body .nav .nav-item .nav-link .link-icon {
  position: static;
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  fill: none;
}

.sidebar .sidebar-body .nav .nav-item .nav-link .link-title {
  margin-left: 0;
  font-size: inherit;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}

.sidebar .sidebar-body .nav .nav-item:hover .nav-link .link-title {
  margin-left: 0;
}

.sidebar .sidebar-body .nav .nav-item .nav-link .link-arrow {
  width: 15px;
  height: 15px;
}

/* Collapsible group triggers (Data Explorer / Manage Data / Excel Data) —
   the design's headStyle: always bold + neutral, never purple, whether
   expanded or not. Only the chevron rotation shows open/closed state. */
.sidebar .sidebar-body .nav .nav-item .nav-link[data-bs-toggle="collapse"] {
  justify-content: space-between;
  font-weight: 600;
  color: #1f2430;
}

[data-bs-theme="dark"] .sidebar .sidebar-body .nav .nav-item .nav-link[data-bs-toggle="collapse"] {
  color: #e7eaf3;
}

.sidebar .sidebar-body .nav .nav-item:hover .nav-link[data-bs-toggle="collapse"] {
  color: #1f2430;
}

[data-bs-theme="dark"] .sidebar .sidebar-body .nav .nav-item:hover .nav-link[data-bs-toggle="collapse"] {
  color: #e7eaf3;
}

/* Category headers (.sb-cat) */
.sidebar .sidebar-body .nav .nav-item.nav-category {
  height: auto;
  margin: 0;
  padding: 16px 13px 6px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #9aa1b1;
}

[data-bs-theme="dark"] .sidebar .sidebar-body .nav .nav-item.nav-category {
  color: #5b6584;
}

.sidebar .sidebar-body .nav .nav-item.nav-category:not(:first-child) {
  margin-top: 0;
}

/* Sub-menu rows (.sb-sub) */
.sidebar .sidebar-body .nav.sub-menu {
  padding: 4px 0 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.sidebar .sidebar-body .nav.sub-menu .nav-item .nav-link {
  height: auto;
  padding: 7px 13px 7px 41px;
  border-radius: 8px;
  font-size: 13px;
  color: #5c6478;
}

[data-bs-theme="dark"] .sidebar .sidebar-body .nav.sub-menu .nav-item .nav-link {
  color: #828aa3;
}

.sidebar .sidebar-body .nav.sub-menu .nav-item .nav-link::before {
  display: none;
}

.sidebar .sidebar-body .nav.sub-menu .nav-item .nav-link.active {
  background: #f3f4fa;
  color: #7c86ff;
  font-weight: 600;
}

[data-bs-theme="dark"] .sidebar .sidebar-body .nav.sub-menu .nav-item .nav-link.active {
  background: #141d33;
}

.sidebar .sidebar-body .nav.sub-menu .nav-item:hover .nav-link:not(.active) {
  margin-left: 0;
  color: #5c6478;
}

[data-bs-theme="dark"] .sidebar .sidebar-body .nav.sub-menu .nav-item:hover .nav-link:not(.active) {
  color: #828aa3;
}

/* Collapsed (icon-only) rail */
.sidebar-folded:not(.open-sidebar-folded) .sidebar .sidebar-body .nav .nav-item.nav-category {
  display: none;
}

.sidebar-folded:not(.open-sidebar-folded) .sidebar .sidebar-body .nav .nav-item .nav-link {
  justify-content: center;
  gap: 0;
  padding-left: 0;
  padding-right: 0;
}

.sidebar-folded:not(.open-sidebar-folded) .sidebar .sidebar-body .nav .nav-item .nav-link .link-title,
.sidebar-folded:not(.open-sidebar-folded) .sidebar .sidebar-body .nav .nav-item .nav-link .link-arrow {
  display: none;
}

.sidebar-folded:not(.open-sidebar-folded) .sidebar .sidebar-body .nav > .nav-item.active > .nav-link {
  padding: 9px 0;
}
