/*
 * DataNoble side navigation skin (design: "User navigation" 2b / 2c).
 * Purely visual — scoped to .sidebar.dn-nav and layered over Material Dashboard,
 * so the Blade logic, permissions and Bootstrap collapses are untouched.
 *
 * Variants: default = left glow bar + gradient wash (2b).
 *           add `dn-nav--pill` to the .sidebar for the inset pill highlight (2c).
 * Background: swap data-image between img/nav/bg-v1.jpg and img/nav/bg-v2.jpg.
 */

.sidebar.dn-nav {
  --dn-accent: #2f7bff;
  --dn-accent-deep: #1a56d6;
  --dn-hover: rgba(255, 255, 255, 0.05);
  --dn-divider: rgba(255, 255, 255, 0.14);
  --dn-logo-h: 112px;
  --dn-caret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-color: #001a3d;
  font-family: 'Figtree', 'Roboto', system-ui, sans-serif;
}

/* Background image: full strength, no Material wash on top */
.sidebar.dn-nav .sidebar-background { opacity: 1; background-position: center top; }
.sidebar.dn-nav .sidebar-background:after { display: none; }

/* ── Client logo box ─────────────────────────────── */
.sidebar.dn-nav .logo {
  height: var(--dn-logo-h);
  padding: 14px 18px;
  background: #fff;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sidebar.dn-nav .logo:after { display: none; }
.sidebar.dn-nav .logo a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.sidebar.dn-nav .logo img { max-width: 100%; max-height: 100%; object-fit: contain; }

.sidebar.dn-nav .sidebar-wrapper {
  height: calc(100vh - var(--dn-logo-h));
  padding: 20px 0 30px;
}

/* ── User block ──────────────────────────────────── */
.sidebar.dn-nav .user {
  margin: 0 0 10px;
  padding: 6px 0 14px;
  border-bottom: 1px solid var(--dn-divider);
}
.sidebar.dn-nav .user:after { display: none; }
.sidebar.dn-nav .user .photo {
  width: 40px;
  height: 40px;
  margin: 2px 0 0 24px;
  background: #e8861c;
  box-shadow: none;
}
.sidebar.dn-nav .user .photo img { width: 100%; height: 100%; object-fit: cover; }
.sidebar.dn-nav .user .user-info > a.username {
  display: block;
  padding: 0 28px 0 14px;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  line-height: 44px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sidebar.dn-nav .user .user-info > a.username > span { padding-right: 18px; }
.sidebar.dn-nav .user .user-info .caret { top: 50%; right: 24px; margin-top: -6px; }
.sidebar.dn-nav .user .collapse .nav,
.sidebar.dn-nav .user .collapsing .nav { margin-top: 10px; }
.sidebar.dn-nav .user .nav .nav-item .nav-link {
  position: relative;
  margin: 0;
  height: 44px;
  padding: 0 24px 0 74px;
  display: flex;
  align-items: center;
  border-radius: 0;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  opacity: 0.92;
  text-transform: none;
}
.sidebar.dn-nav .user .nav .nav-item .nav-link:hover { background-color: var(--dn-hover); }
.sidebar.dn-nav .user .nav .sidebar-mini { display: none !important; }

/* ── Caret → chevron (rotates when the group is open) ── */
.sidebar.dn-nav .caret {
  width: 12px;
  height: 12px;
  border: 0;
  background: var(--dn-caret) center/12px no-repeat;
  opacity: 0.8;
  transition: transform 0.2s;
}
.sidebar.dn-nav [aria-expanded="true"] .caret,
.sidebar.dn-nav .nav-item:has(> .collapse.show) > a .caret,
.sidebar.dn-nav .user-info:has(> .collapse.show) .caret { transform: rotate(180deg); }

/* ── Main menu ───────────────────────────────────── */
.sidebar.dn-nav .dn-nav__menu { margin-top: 0; display: flex; flex-direction: column; gap: 4px; }
.sidebar.dn-nav .dn-nav__menu .nav-item { position: relative; }
/* Keep each item (and its submenu) to the sidebar's width; otherwise a long survey name
   widens the whole group and the text runs off under the sidebar's edge. */
.sidebar.dn-nav .dn-nav__menu > .nav-item,
.sidebar.dn-nav .dn-nav__menu .collapse,
.sidebar.dn-nav .dn-nav__menu .collapsing { width: 100%; min-width: 0; max-width: 100%; }

/* Top-level rows */
.sidebar.dn-nav .dn-nav__menu > .nav-item > .nav-link {
  position: relative;
  margin: 0;
  height: 56px;
  padding: 0 24px 0 24px;
  display: flex;
  align-items: center;
  gap: 14px;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: #fff;
  text-transform: none;
  transition: background-color 0.15s, box-shadow 0.2s;
}
.sidebar.dn-nav .dn-nav__menu > .nav-item > .nav-link .dn-nav__icon {
  width: 36px;
  height: 36px;
  flex: none;
  object-fit: contain;
}
.sidebar.dn-nav .dn-nav__menu > .nav-item > .nav-link p {
  position: static; /* anchor the caret to the row, not the label */
  flex: 1;
  min-width: 0;
  margin: 0;
  padding-right: 16px;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1px;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sidebar.dn-nav .dn-nav__menu > .nav-item > .nav-link .caret { position: absolute; top: 50%; right: 24px; margin-top: -6px; }

/* Sub-rows (text only, aligned under the label) */
.sidebar.dn-nav .dn-nav__menu .nav-item .nav .nav-item .nav-link {
  position: relative;
  margin: 2px 0 0;
  min-height: 44px;   /* grows when a long name wraps */
  height: auto;
  padding: 8px 24px 8px 74px;
  display: flex;
  align-items: center;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: #fff;
  text-transform: none;
}
.sidebar.dn-nav .dn-nav__menu .nav-item .nav .nav-link .sidebar-mini { display: none !important; }

/* Sub-item icons: small glyphs centred in the parent's icon column, so the text stays
   aligned under the parent labels and the ringed PNGs remain the top-level marker. */
.sidebar.dn-nav .dn-nav__menu .nav-item .nav .nav-link i.material-icons,
.sidebar.dn-nav .user .nav .nav-item .nav-link i.material-icons {
  position: absolute;
  left: 33px;
  top: 50%;
  width: 18px;
  margin: -9px 0 0;
  float: none;
  color: #fff;
  font-size: 18px;
  line-height: 18px;
  text-align: center;
  opacity: 0.7;
}
.sidebar.dn-nav .dn-nav__menu .nav-item .nav .nav-item.active > .nav-link i.material-icons,
.sidebar.dn-nav .nav .nav .nav-link:hover i.material-icons { opacity: 1; }
.sidebar.dn-nav .dn-nav__menu .nav-item .nav .nav-link .sidebar-normal,
.sidebar.dn-nav .dn-nav__menu .nav-item .nav .nav-link p {
  margin: 0;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  opacity: 0.92;
  flex: 1 1 auto;
  min-width: 0;
  /* Wrap rather than truncate: survey names often differ only at the end ("…FY27 - S1" / "- S2") */
  white-space: normal;
  overflow-wrap: anywhere;
  transform: none;
}

/* Hover */
.sidebar.dn-nav .dn-nav__menu .nav-item > .nav-link:hover,
.sidebar.dn-nav .dn-nav__menu .nav-item > .nav-link:focus { background-color: var(--dn-hover); box-shadow: none; }

/* Active: a leaf, or a group whose submenu is closed (an open group lets its child carry the highlight) */
.sidebar.dn-nav .dn-nav__menu .nav-item.active:not(:has(> .collapse.show, > .collapsing)) > .nav-link {
  background-image: linear-gradient(90deg, rgba(47, 123, 255, 0.28), rgba(47, 123, 255, 0.06) 85%, rgba(47, 123, 255, 0));
}
.sidebar.dn-nav .dn-nav__menu .nav-item.active:not(:has(> .collapse.show, > .collapsing)) > .nav-link:before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 6px;
  width: 4px;
  border-radius: 0 3px 3px 0;
  background: var(--dn-accent);
  box-shadow: 0 0 12px rgba(47, 123, 255, 0.8);
}
.sidebar.dn-nav .dn-nav__menu > .nav-item.active:not(:has(> .collapse.show, > .collapsing)) > .nav-link p { font-weight: 700; }
/* sub-items go only to 600 when active, so a name doesn't re-wrap as it becomes bold */
.sidebar.dn-nav .dn-nav__menu .nav .nav-item.active > .nav-link .sidebar-normal,
.sidebar.dn-nav .dn-nav__menu .nav .nav-item.active > .nav-link p { font-weight: 600; }

/* ── Variant 2c: inset pill highlight ────────────── */
.sidebar.dn-nav--pill .sidebar-wrapper { padding-left: 14px; padding-right: 14px; }
.sidebar.dn-nav--pill .user .photo { margin-left: 10px; }
.sidebar.dn-nav--pill .user .user-info > a.username { padding-right: 6px; }
.sidebar.dn-nav--pill .user .user-info .caret { right: 6px; }
.sidebar.dn-nav--pill .dn-nav__menu > .nav-item > .nav-link { padding: 0 14px 0 12px; border-radius: 12px; }
.sidebar.dn-nav--pill .dn-nav__menu > .nav-item > .nav-link .caret { right: 14px; }
.sidebar.dn-nav--pill .dn-nav__menu .nav-item .nav .nav-link i.material-icons,
.sidebar.dn-nav--pill .user .nav .nav-item .nav-link i.material-icons { left: 21px; }
.sidebar.dn-nav--pill .user .nav .nav-item .nav-link,
.sidebar.dn-nav--pill .dn-nav__menu .nav-item .nav .nav-item .nav-link { padding: 0 14px 0 62px; border-radius: 10px; }
.sidebar.dn-nav--pill .dn-nav__menu .nav-item > .nav-link:hover { background-color: rgba(255, 255, 255, 0.06); }
.sidebar.dn-nav--pill .dn-nav__menu .nav-item.active:not(:has(> .collapse.show, > .collapsing)) > .nav-link {
  background-image: linear-gradient(135deg, var(--dn-accent), var(--dn-accent-deep));
  box-shadow: 0 8px 24px rgba(30, 100, 255, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.25);
}
.sidebar.dn-nav--pill .dn-nav__menu .nav-item.active > .nav-link:before { display: none; }
