.drawer-scrim {
  position: fixed;
  inset: 0;
  z-index: 35;
  background: rgba(0, 0, 0, 0.45);
}

.left-drawer {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 40;
  width: var(--drawer-width);
  max-width: calc(100vw - 32px);
  height: 100vh;
  padding-top: var(--topbar-height);
  background-image:
    linear-gradient(180deg, rgba(2, 5, 10, 0.70), rgba(2, 5, 10, 0.88)),
    var(--drawer-background-image, url('/assets/ninja-drawer-city.webp'));
  background-position: center center, center center;
  background-size: cover, cover;
  background-repeat: no-repeat, no-repeat;
  background-color: var(--panel);
  border-right: 1px solid rgba(57, 255, 20, 0.12);
  box-shadow: 24px 0 48px rgba(0,0,0,0.45), inset -1px 0 0 rgba(255,255,255,0.035);
  transform: translateX(-104%);
  transition: transform 180ms ease;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.left-drawer.is-open {
  transform: translateX(0);
}

.drawer-header {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 16px 22px 14px;
  border-bottom: 1px solid rgba(57, 255, 20, 0.10);
}

.drawer-user-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--accent-soft);
  color: white;
  font-size: 23px;
  font-weight: 700;
}

.drawer-user-name {
  font-size: 16px;
  font-weight: 600;
}

.drawer-user-role {
  margin-top: 3px;
  color: var(--muted);
  font-size: 13px;
}



.drawer-nav {
  transition: transform 160ms ease, opacity 160ms ease;
}

.left-drawer.is-panel-switching .drawer-nav {
  transform: translateX(18px);
  opacity: 0;
}

.drawer-nav {
  padding: 11px 10px;
  flex: 1 1 auto;
  overflow-y: auto;
}

.drawer-item {
  width: 100%;
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 0 14px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  text-align: left;
}

.drawer-item:hover,
.drawer-item:focus-visible {
  outline: none;
  background: rgba(57, 255, 20, 0.026);
}

.drawer-item.is-active {
  outline: none;
  background: linear-gradient(90deg, rgba(57, 255, 20, 0.065), rgba(57, 255, 20, 0.018));
  box-shadow: inset 2px 0 0 #FFCC00;
}

.drawer-item.is-logout:hover,
.drawer-item.is-logout:focus-visible {
  background: linear-gradient(90deg, rgba(217, 70, 239, 0.07), rgba(217, 70, 239, 0.018));
  box-shadow: inset 2px 0 0 #D946EF;
}

.drawer-item.is-switch {
  margin-top: 11px;
  border-top: 1px solid rgba(57, 255, 20, 0.10);
  border-radius: 0 0 6px 6px;
}

.drawer-icon {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 23px;
}

.drawer-icon-img {
  width: 29px;
  height: 29px;
  object-fit: contain;
  display: block;
}

.drawer-label {
  font-size: 15px;
}

body.shell-device-tv .drawer-item {
  min-height: 52px;
}


.admin-drawer-footer {
  flex: 0 0 auto;
  padding: 16px 22px 20px;
  border-top: 1px solid rgba(57, 255, 20, 0.10);
  color: var(--muted);
}

.admin-drawer-app {
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.4px;
}

.admin-drawer-text-logo {
  display: block;
  width: min(180px, 100%);
  max-height: 42px;
  object-fit: contain;
  object-position: left center;
}

.admin-drawer-version {
  margin-top: 3px;
  font-size: 12px;
}

/* v0.0.294 — drawer avatar image beside user name */
.drawer-user-avatar {
  overflow: hidden;
  flex: 0 0 42px;
}

.drawer-user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* v0.0.449: drawer uses updated Ninja Media city background asset. */


/* v0.0.450: fixed Ninja Media ownership/footer mark. */
.admin-drawer-watermark {
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

/* v0.0.564 — drawer readable size follows Web/TV Size control. */
body:not(.shell-device-phone) .drawer-item {
  min-height: var(--ninja-drawer-item-height, 38px);
}

body:not(.shell-device-phone) .drawer-icon,
body:not(.shell-device-phone) .drawer-icon-img {
  width: var(--ninja-drawer-icon-size, 29px);
  height: var(--ninja-drawer-icon-size, 29px);
  font-size: var(--ninja-drawer-icon-size, 29px);
}

body:not(.shell-device-phone) .drawer-label {
  font-size: var(--ninja-drawer-label-font, 15px);
}

body:not(.shell-device-phone) .drawer-user-name {
  font-size: var(--ninja-drawer-label-font, 16px);
}

body:not(.shell-device-phone) .drawer-user-role {
  font-size: var(--ninja-small-copy-font, 13px);
}
