/* Presentation only; existing permission-filtered accordion owns navigation. */
.sidebar {
  isolation: isolate; height: 100vh; height: 100dvh; overflow: hidden;
  background: linear-gradient(165deg, #101f33 0%, #14344f 55%, #195276 100%);
  border-right: 1px solid #27485e; box-shadow: 8px 0 28px #0b24351c;
}
.sidebar .brand { flex: 0 0 auto; min-height: 82px; padding: 0 20px; border-bottom: 1px solid #ffffff16; background: #ffffff04; }
.sidebar .brand-mark { flex-shrink: 0; background: #fff; border: 1px solid #ffffffb3; }
.sidebar .brand b { color: #fff; font-size: 17px; letter-spacing: -.3px; }
.sidebar .brand small { color: #a9c4d8; font-size: 11px; margin-top: 4px; }
.sidebar nav { flex: 1 1 0; min-height: 0; padding: 12px 10px 24px; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #6d94ae80 transparent; }
.sidebar nav::-webkit-scrollbar { width: 5px; }
.sidebar nav::-webkit-scrollbar-thumb { background: #6d94ae80; border-radius: 8px; }
.sidebar .nav-section { padding: 6px 0; border-bottom: 1px solid #ffffff0e; }
.sidebar .nav-section:last-child { border-bottom: 0; }
.sidebar .nav-heading {
  grid-template-columns: 22px minmax(0, 1fr) 14px; gap: 10px; min-height: 48px; padding: 10px 12px;
  border: 1px solid transparent; border-radius: 9px; background: transparent; color: #c7dceb;
  font-size: 12px; font-weight: 700; letter-spacing: .4px; line-height: 1.45;
}
.sidebar .nav-heading-label { white-space: normal; overflow-wrap: normal; }
.sidebar .nav-heading:hover { background: #ffffff09; color: #fff; }
.sidebar .nav-section.expanded > .nav-heading { color: #fff; background: #ffffff0d; border-color: #7fb8d21f; box-shadow: inset 3px 0 #31c4bf; }
.sidebar .nav-heading-icon,.sidebar .nav-branch-icon,.sidebar .nav-line-icon {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 20px; width: 20px; height: 22px; background: none; color: #9dbdd2; border-radius: 0;
}
.sidebar .nav-heading-icon svg { width: 21px; height: 21px; }
.sidebar .nav-line-icon svg,.sidebar .nav-branch-icon svg { width: 18px; height: 18px; }
.sidebar .nav-section.expanded > .nav-heading .nav-heading-icon { color: #68d7d0; }
.sidebar .nav-chevron { color: #9ebbd0; font-size: 23px; flex: 0 0 14px; text-align: center; }
.sidebar .nav-children-inner { min-width: 0; }
.sidebar .nav-children { visibility: hidden; }
.sidebar .nav-section.expanded > .nav-children { visibility: visible; }
.sidebar .nav-section.expanded > .nav-children > .nav-children-inner { padding: 6px 0 2px 10px; }
.sidebar .nav-item,.sidebar .nav-toggle {
  display: flex; align-items: center; width: 100%; min-height: 42px; gap: 8px; margin: 2px 0; padding: 9px 9px;
  border: 1px solid transparent; border-radius: 7px; background: transparent; color: #bbd1e1;
  font: inherit; font-size: .875rem; line-height: 1.4; text-align: left; cursor: pointer;
  transition: background-color .16s ease, color .16s ease;
}
.sidebar .nav-item .nav-item-label,.sidebar .nav-toggle > span:nth-child(2) { flex: 1; min-width: 0; white-space: normal; overflow-wrap: break-word; }
.sidebar .nav-item:hover,.sidebar .nav-toggle:hover { color: #fff; background: #ffffff0b; }
.sidebar .nav-item.active { color: #fff; background: #1c7d893f; border-color: #45bab638; box-shadow: inset 3px 0 #37c7bf; font-weight: 600; }
.sidebar .nav-item.active .nav-line-icon { color: #77e2db; }
.sidebar .nav-subgroup { min-width: 0; }
.sidebar .nav-subgroup.is-open > .nav-toggle { color: #d9f5f4; font-weight: 600; }
.sidebar .nav-subgroup > .nav-toggle .nav-chevron { transform: rotate(0deg); }
.sidebar .nav-subgroup.is-open > .nav-toggle .nav-chevron { transform: rotate(90deg); }
.sidebar .nav-branch-children { margin-left: 10px; padding-left: 7px; border-left: 1px solid #9ac6dc26; }
.sidebar .nav-branch-children[hidden] { display: none; }
.sidebar .nav-branch-children .nav-item { padding-left: 7px; }
.sidebar .nav-item .count { display: none; }
.sidebar .nav-heading:focus-visible,.sidebar .nav-item:focus-visible,.sidebar .nav-toggle:focus-visible { outline: 2px solid #73e0d9; outline-offset: -2px; }
@media (max-width: 850px) {
  .sidebar { box-shadow: 18px 0 48px #04182b61; transition: transform .25s ease; }
  .sidebar .nav-item,.sidebar .nav-toggle { min-height: 44px; }
  .sidebar .mobile-menu-close { color: #e1f1f8; background: #ffffff12; border-color: #ffffff30; }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar,.sidebar .nav-item,.sidebar .nav-heading,.sidebar .nav-toggle,.sidebar .nav-chevron,.sidebar .nav-children { transition: none; }
}
