/* Cape Ranch — fixed sidebar header. Loaded AFTER legacy sidebar styles.
   Important: non-shrinking header/nav prevents menu controls from covering labels. */
.sidebar {
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  align-content: flex-start;
}
.sidebar .cape-sidebar-header {
  display: block !important;
  position: relative !important;
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  width: 100%;
  min-width: 0;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 8px 2px 0 !important;
  box-sizing: border-box;
  overflow: visible !important;
}
.sidebar .cape-sidebar-header .brand {
  display: grid !important;
  grid-template-areas: "logo name" !important;
  grid-template-columns: 48px minmax(0, 1fr) !important;
  grid-template-rows: auto !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 0 !important;
  position: static !important;
  flex: 0 0 auto !important;
  height: auto !important;
  max-height: none !important;
  min-height: 68px !important;
  padding: 0 2px 12px !important;
  margin: 0 !important;
  border: 0 !important;
  width: 100%;
  box-sizing: border-box;
}
.sidebar .cape-sidebar-header .brand-icon {
  grid-area: logo !important;
  display: grid !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  margin: 0 !important;
  place-items: center;
  position: static !important;
}
.sidebar .cape-sidebar-header .brand-icon img {
  width: 48px !important;
  height: 48px !important;
  object-fit: contain;
}
.sidebar .cape-sidebar-header .brand-name {
  grid-area: name !important;
  display: block !important;
  position: static !important;
  min-width: 0 !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.25;
}
.sidebar .cape-sidebar-header .brand-name small {
  display: block !important;
  margin-top: 5px !important;
  font-size: 9px !important;
  line-height: 1.4 !important;
  letter-spacing: 1.1px !important;
  white-space: normal !important;
}
.sidebar .cape-sidebar-controls {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  position: static !important;
  flex: 0 0 auto !important;
  min-height: 52px !important;
  height: auto !important;
  width: 100%;
  padding: 8px 6px 12px !important;
  margin: 0 0 7px !important;
  border-bottom: 1px solid rgba(255,255,255,.19) !important;
  box-sizing: border-box;
}
.sidebar .cape-menu-caption {
  color: #b7dbca;
  font-size: 10px;
  letter-spacing: 1.4px;
  font-weight: 700;
  line-height: 1;
}
.sidebar .cape-sidebar-controls .sidebar-toggle {
  display: grid !important;
  place-items: center !important;
  position: static !important;
  grid-area: auto !important;
  justify-self: auto !important;
  flex: 0 0 38px !important;
  width: 38px !important;
  min-width: 38px !important;
  height: 36px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 9px;
  background: rgba(255,255,255,.09);
  color: white;
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
}
.sidebar .cape-sidebar-controls .sidebar-toggle:hover,
.sidebar .cape-sidebar-controls .sidebar-toggle:focus-visible {
  background: rgba(255,255,255,.19);
}
.sidebar .cape-sidebar-header + .nav-label {
  position: static !important;
  flex: 0 0 auto !important;
  margin-top: 9px !important;
}
.sidebar > .nav-label,
.sidebar > .nav-link {
  flex-shrink: 0 !important;
}
/* Desktop icon-only rail: keep logo + menu stacked with no clipping. */
.app-shell.is-collapsed .sidebar .cape-sidebar-header {
  padding: 4px 0 0 !important;
}
.app-shell.is-collapsed .sidebar .cape-sidebar-header .brand {
  grid-template-columns: 1fr !important;
  grid-template-areas: "logo" !important;
  justify-items: center !important;
  padding: 0 0 8px !important;
  min-height: 55px !important;
}
.app-shell.is-collapsed .sidebar .cape-sidebar-header .brand-name {
  display: none !important;
}
.app-shell.is-collapsed .sidebar .cape-sidebar-header .brand-icon,
.app-shell.is-collapsed .sidebar .cape-sidebar-header .brand-icon img {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
}
.app-shell.is-collapsed .sidebar .cape-sidebar-controls {
  justify-content: center !important;
  padding: 5px 0 12px !important;
}
.app-shell.is-collapsed .sidebar .cape-menu-caption {
  display: none !important;
}
/* On phones, the header remains expanded within the drawer. */
@media (max-width: 710px) {
  .sidebar .cape-sidebar-header .brand {
    grid-template-columns: 48px minmax(0,1fr) !important;
  }
  .app-shell.is-collapsed .sidebar .cape-sidebar-header .brand {
    grid-template-areas: "logo name" !important;
    grid-template-columns: 48px minmax(0,1fr) !important;
    justify-items: stretch !important;
    min-height: 68px !important;
  }
  .app-shell.is-collapsed .sidebar .cape-sidebar-header .brand-name {
    display: block !important;
  }
  .app-shell.is-collapsed .sidebar .cape-sidebar-controls {
    justify-content: space-between !important;
    padding: 8px 6px 12px !important;
  }
  .app-shell.is-collapsed .sidebar .cape-menu-caption {
    display: block !important;
  }
}
