/*
 * Fixed admin sidebar: pinned while page content scrolls.
 * Header sits beside the sidebar (not over it) so no empty top gap is needed.
 */

/* Theme Style maps sidebar color onto body — stop dark voids under short pages */
html body.admin {
  background: #f4f4f5 !important;
}

body.admin #wrapper {
  min-height: calc(100vh - 57px) !important;
  background: #f4f4f5 !important;
}

/*
 * Single full-width panel pages (forms/tables): stretch the white panel to the
 * bottom so no gray strip remains. Multi-column dashboards are left alone.
 * Opt out with #wrapper.admin-content-fit when the form should stay content-sized.
 */
body.admin #wrapper:not(.admin-content-fit) > .content:has(> .row:only-child > .col-md-12:only-child) {
  min-height: calc(100vh - 57px);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

body.admin #wrapper:not(.admin-content-fit) > .content:has(> .row:only-child > .col-md-12:only-child) > .row {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

body.admin #wrapper:not(.admin-content-fit) > .content:has(> .row:only-child > .col-md-12:only-child) > .row > .col-md-12 {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

body.admin #wrapper:not(.admin-content-fit) > .content:has(> .row:only-child > .col-md-12:only-child) > .row > .col-md-12 > .panel_s {
  flex: 1 1 auto;
  margin-bottom: 0 !important;
  display: flex;
  flex-direction: column;
}

body.admin #wrapper:not(.admin-content-fit) > .content:has(> .row:only-child > .col-md-12:only-child) > .row > .col-md-12 > .panel_s > .panel-body {
  flex: 1 1 auto;
}

/* Content-sized pages: panel follows form height (no forced full-viewport stretch) */
body.admin #wrapper.admin-content-fit {
  min-height: 0 !important;
  height: auto !important;
}
body.admin #wrapper.admin-content-fit > .content {
  min-height: 0 !important;
  height: auto !important;
  display: block !important;
}
body.admin #wrapper.admin-content-fit .panel_s,
body.admin #wrapper.admin-content-fit .panel_s > .panel-body {
  flex: none !important;
  display: block !important;
  min-height: 0 !important;
  height: auto !important;
}

body.admin #header {
  margin-left: 230px;
}

[dir="rtl"] body.admin #header {
  margin-left: 0;
  margin-right: 230px;
}

body.admin.hide-sidebar:not(.show-sidebar) #header,
body.admin.page-small:not(.show-sidebar) #header {
  margin-left: 0 !important;
}

[dir="rtl"] body.admin.hide-sidebar:not(.show-sidebar) #header,
[dir="rtl"] body.admin.page-small:not(.show-sidebar) #header {
  margin-right: 0 !important;
}

body.admin.page-small.show-sidebar #header {
  margin-left: 230px;
}

[dir="rtl"] body.admin.page-small.show-sidebar #header {
  margin-left: 0;
  margin-right: 230px;
}

body.admin #menu.sidebar {
  position: fixed !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 0;
  height: 100vh !important;
  max-height: 100vh !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: scroll !important;
  z-index: 10;
  padding-top: 10px;
  box-sizing: border-box;
}

/* Setup panel above main sidebar */
body.admin #setup-menu-wrapper.sidebar {
  position: fixed !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 0;
  height: 100vh !important;
  max-height: 100vh !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: scroll !important;
  z-index: 12;
  box-sizing: border-box;
}

[dir="rtl"] body.admin #menu.sidebar,
[dir="rtl"] body.admin #setup-menu-wrapper.sidebar {
  left: auto;
  right: 0;
}

/* Light scrollbar so it is visible on dark sidebar */
body.admin #menu.sidebar,
body.admin #setup-menu-wrapper.sidebar {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.5) rgba(0, 0, 0, 0.25);
}

body.admin #menu.sidebar::-webkit-scrollbar,
body.admin #setup-menu-wrapper.sidebar::-webkit-scrollbar {
  width: 8px;
}

body.admin #menu.sidebar::-webkit-scrollbar-track,
body.admin #setup-menu-wrapper.sidebar::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.25);
}

body.admin #menu.sidebar::-webkit-scrollbar-thumb,
body.admin #setup-menu-wrapper.sidebar::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.45);
  border-radius: 4px;
}

body.admin #menu.sidebar::-webkit-scrollbar-thumb:hover,
body.admin #setup-menu-wrapper.sidebar::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.65);
}

/* Hide/collapse slide-off */
body.admin.hide-sidebar:not(.show-sidebar) #menu.sidebar,
body.admin.page-small:not(.show-sidebar) #menu.sidebar {
  margin-left: -230px;
}

[dir="rtl"] body.admin.hide-sidebar:not(.show-sidebar) #menu.sidebar,
[dir="rtl"] body.admin.page-small:not(.show-sidebar) #menu.sidebar {
  margin-left: 0;
  margin-right: -230px;
}

body.admin.page-small.show-sidebar #menu.sidebar {
  margin-left: 0;
}

[dir="rtl"] body.admin.page-small.show-sidebar #menu.sidebar {
  margin-right: 0;
}

/* Keep icon / label / chevron on one row */
body.admin .sidebar ul.nav > li > a {
  display: flex !important;
  align-items: center;
  gap: 0;
}

body.admin .sidebar ul.nav > li > a i.menu-icon {
  float: none !important;
  flex: 0 0 18px;
  margin-right: 14px;
}

body.admin .sidebar ul.nav > li > a .menu-text {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin .sidebar ul.nav > li > a .arrow,
body.admin .sidebar ul.nav > li > a .fa.arrow {
  float: none !important;
  flex: 0 0 auto;
  margin-left: 6px;
  padding-top: 0 !important;
}

body.admin .sidebar ul.nav > li > a .badge {
  flex: 0 0 auto;
  margin-left: 6px;
  float: none !important;
  position: static !important;
}

/* Fix sidebar dropdown items text compression - Improved readability */
body.admin .sidebar ul.nav li .nav-second-level li a {
  padding: 6px 15px 6px 44px !important;
  white-space: normal !important;
  line-height: 1.5 !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  text-align: left !important;
}

/* Slightly increase sidebar width for better text display */
body.admin .sidebar {
  width: 250px !important;
}

/* Adjust header margin for new sidebar width */
body.admin #header {
  margin-left: 250px !important;
}

[dir="rtl"] body.admin #header {
  margin-left: 0 !important;
  margin-right: 250px !important;
}

/* Adjust wrapper margin for new sidebar width */
body.admin #wrapper {
  margin-left: 250px !important;
}

[dir="rtl"] body.admin #wrapper {
  margin-left: 0 !important;
  margin-right: 250px !important;
}

/* When sidebar is collapsed, content must use full width (250px !important above otherwise leaves empty gap) */
body.admin.hide-sidebar:not(.show-sidebar) #wrapper,
body.admin.page-small:not(.show-sidebar) #wrapper {
  margin-left: 0 !important;
}

[dir="rtl"] body.admin.hide-sidebar:not(.show-sidebar) #wrapper,
[dir="rtl"] body.admin.page-small:not(.show-sidebar) #wrapper {
  margin-right: 0 !important;
}

body.admin.page-small.show-sidebar #wrapper {
  margin-left: 250px !important;
}

[dir="rtl"] body.admin.page-small.show-sidebar #wrapper {
  margin-left: 0 !important;
  margin-right: 250px !important;
}

/* Hide/collapse slide-off for new sidebar width */
body.admin.hide-sidebar:not(.show-sidebar) #menu.sidebar,
body.admin.page-small:not(.show-sidebar) #menu.sidebar {
  margin-left: -250px !important;
}

[dir="rtl"] body.admin.hide-sidebar:not(.show-sidebar) #menu.sidebar,
[dir="rtl"] body.admin.page-small:not(.show-sidebar) #menu.sidebar {
  margin-left: 0 !important;
  margin-right: -250px !important;
}

body.admin.page-small.show-sidebar #menu.sidebar {
  margin-left: 0 !important;
}

[dir="rtl"] body.admin.page-small.show-sidebar #menu.sidebar {
  margin-right: 0 !important;
}

body.admin.page-small.show-sidebar #header {
  margin-left: 250px !important;
}

[dir="rtl"] body.admin.page-small.show-sidebar #header {
  margin-left: 0 !important;
  margin-right: 250px !important;
}
