@layer layout {
/* ── Collapsible sidebar ───────────────────────────────── */
.sidebar { transition: width 0.18s ease; }
.sidebar-logo { justify-content: space-between; }
.sidebar-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--r-sm);
  color: var(--muted);
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--t);
}
.sidebar-toggle:hover { background: oklch(94% 0.01 65); }

/* Collapsed: icon-only rail. Text-bearing nodes are flagged with
   [data-sidebar-text] in the layout and simply removed when collapsed. */
.sidebar[data-collapsed="true"] { width: 60px; }
.sidebar[data-collapsed="true"] [data-sidebar-text] { display: none; }
.sidebar[data-collapsed="true"] .sidebar-logo { padding: 0; justify-content: center; }
.sidebar[data-collapsed="true"] .sidebar-nav { padding: 10px 8px; }
.sidebar[data-collapsed="true"] .nav-item { justify-content: center; gap: 0; padding: 9px 0; }
.sidebar[data-collapsed="true"] .sidebar-user { padding: 14px 0; justify-content: center; }
/* Pop the user menu out of the thin rail so it stays usable. */
.sidebar[data-collapsed="true"] .user-menu { left: 10px; right: auto; width: 220px; }
}
