/* Layout */
.app-shell {
  display: flex;
  min-height: 100vh;
}

.app-sidebar {
  width: var(--app-sidebar-width, 280px);
  flex: 0 0 var(--app-sidebar-width, 280px);
  background:
    linear-gradient(180deg, rgba(2, 31, 63, 0.06), rgba(255, 255, 255, 0) 34%),
    #fff;
  color: #0f172a;
  transition: flex-basis 0.25s ease, width 0.25s ease, transform 0.25s ease;
}

.app-content {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* Sidebar collapsed (desktop) */
.sidebar-collapsed .app-sidebar {
  width: var(--app-sidebar-collapsed-width, 76px);
  flex-basis: var(--app-sidebar-collapsed-width, 76px);
}

.sidebar-collapsed .nav-text,
.sidebar-collapsed .app-sidebar__brand-copy {
  display: none;
}

.app-sidebar__logo-mark {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  box-shadow: 0 10px 24px rgba(11, 79, 108, 0.12);
  overflow: hidden;
}

.app-sidebar__logo-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 6px;
}

.app-sidebar__brand-image {
  display: block;
  height: 46px;
  width: auto;
  object-fit: contain;
}

.app-sidebar__brand-image--collapsed {
  display: none;
}

.sidebar-collapsed .app-sidebar__brand-image--expanded {
  display: none;
}

.sidebar-collapsed .app-sidebar__brand-image--collapsed {
  display: block;
  height: 38px;
}

/* Mobile behavior */
@media (max-width: 991px) {
  .app-sidebar {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(var(--app-sidebar-width, 280px), 86vw);
    max-width: 320px;
    transform: translateX(100%);
    z-index: 1040;
  }

  .sidebar-mobile-open .app-sidebar {
    transform: translateX(0);
  }
}

/* Topbar */
.app-topbar {
  height: 56px;
  border-bottom: 1px solid #e5e7eb;
  background: #fff;
}
