.app-shell {
  --current-sidebar-width: var(--sidebar-width);
  min-height: 100vh;
}

.app-shell[data-sidebar="collapsed"] {
  --current-sidebar-width: var(--sidebar-width-collapsed);
}

.sidebar {
  position: fixed;
  z-index: 30;
  inset: 0 auto 0 0;
  display: flex;
  width: var(--current-sidebar-width);
  min-width: 0;
  flex-direction: column;
  padding: 1.6rem 1rem 1.25rem;
  overflow: hidden;
  background: var(--color-sidebar);
  border-right: 1px solid var(--color-border);
}

.sidebar__header {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-inline: 0.2rem;
}

.sidebar__nav {
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--color-accent) 20%, transparent) transparent;
}

.app-main {
  min-width: 0;
  min-height: 100vh;
  margin-left: var(--current-sidebar-width);
}

.topbar {
  position: sticky;
  z-index: 20;
  top: 0;
  display: flex;
  min-height: var(--topbar-height);
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem clamp(1.25rem, 3vw, 2.5rem);
  background: color-mix(in srgb, var(--color-canvas) 96%, transparent);
  border-bottom: 1px solid var(--color-border);
  backdrop-filter: blur(12px);
}

.topbar__start {
  display: flex;
  flex: 1;
  min-width: 0;
  align-items: center;
  gap: 0.8rem;
}

.topbar__actions { display: flex; align-items: center; gap: .75rem; }

.mobile-brand { display: none; }

.content {
  min-width: 0;
  padding: clamp(2rem, 3.5vw, 3rem) clamp(1.25rem, 4vw, 4rem);
}

.content__inner {
  width: min(100%, var(--content-width));
  margin-inline: auto;
}

.drawer-backdrop,
.icon-button.topbar__menu,
.icon-button.sidebar__close {
  display: none;
}

@media (prefers-reduced-motion: no-preference) {
  .sidebar,
  .app-main,
  .brand__copy,
  .nav-item__label,
  .sidebar__section-title,
  .sidebar__footer {
    transition: width 190ms ease, margin 190ms ease, opacity 150ms ease, transform 190ms ease;
  }
}
