/* The expanded menu overlays the workspace, so hovering never shifts content. */
.rail-toggle { display: none; }
#firmSidebar {
  width: 76px;
  padding: 12px;
  overflow-x: hidden;
  transition: width 180ms ease, box-shadow 180ms ease;
}
#appShell > .content { margin-left: 76px; min-width: 0; }
#firmSidebar .nav { width: 100%; }
#firmSidebar .nav__item { padding: 10px 14px; min-height: 44px; }
#firmSidebar .label { white-space: nowrap; opacity: 0; transition: opacity 120ms ease; }
#firmSidebar .sidebar__brand { width: 52px; padding: 5px 0; margin-bottom: 12px; flex-shrink: 0; }
#firmSidebar .legalarx-icon { width: 52px; max-width: 100%; height: 42px; }
#firmSidebar .sidebar-user { width: 235px; gap: 16px; }
#firmSidebar .avatar { width: 40px; height: 40px; margin-left: 5px; flex-shrink: 0; }
#firmSidebar .sidebar__footer { margin-top: 16px; }
#firmSidebar .nav__item:focus-visible { outline: 2px solid #fff; outline-offset: -3px; }
#firmSidebar:is(.rail-open, :has(:focus-visible)) { width: 260px; box-shadow: 8px 0 24px #07274526; }
#firmSidebar:is(.rail-open, :has(:focus-visible)) .label { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
  #firmSidebar:hover { width: 260px; box-shadow: 8px 0 24px #07274526; }
  #firmSidebar:hover .label { opacity: 1; }
}
@media (hover: none), (pointer: coarse) {
  #firmSidebar .rail-toggle { display: block; width: 50px; min-height: 44px; margin: 0 0 10px; border: 1px solid #ffffff40; border-radius: 8px; color: white; background: transparent; font-size: 22px; cursor: pointer; }
}
@media (min-width: 901px) and (hover: hover) and (pointer: fine) {
  #ownerSidebar { width: 76px; padding: 24px 12px 20px; overflow-x: hidden; transition: width 180ms ease, box-shadow 180ms ease; }
  #ownerWorkspace { margin-left: 76px; }
  #ownerSidebar .sidebar-brand { width: 52px; padding: 0; }
  #ownerSidebar .legalarx-icon { width: 52px; max-width: 100%; height: 42px; }
  #ownerSidebar .sidebar-brand > span:last-child { width: 228px; text-align: left; white-space: nowrap; opacity: 0; }
  #ownerSidebar .nav-label { width: 228px; margin: 24px 0 12px; white-space: nowrap; opacity: 0; }
  #ownerSidebar .owner-nav { width: 100%; grid-template-columns: minmax(0, 1fr); }
  #ownerSidebar .owner-nav a { min-width: 0; padding: 13px 16px; white-space: nowrap; }
  #ownerSidebar .nav-icon { flex-shrink: 0; }
  #ownerSidebar .menu-label { opacity: 0; transition: opacity 120ms ease; }
  #ownerSidebar .sidebar-bottom { padding: 24px 0 0; }
  #ownerSidebar .installation-label { width: 228px; white-space: nowrap; opacity: 0; }
  #ownerSidebar .owner-identity { width: 228px; padding-left: 9px; }
  #ownerSidebar .owner-identity > div { opacity: 0; }
  #ownerSidebar .sidebar-signout { display: flex; align-items: center; gap: 14px; width: 100%; white-space: nowrap; padding: 9px 16px; text-align: left; }
  #ownerSidebar .signout-icon { width: 18px; font-size: 20px; flex-shrink: 0; }
  #ownerSidebar:is(:hover, :has(:focus-visible)) { width: 252px; box-shadow: 8px 0 24px #07274526; }
  #ownerSidebar:is(:hover, :has(:focus-visible)) :is(.menu-label, .nav-label, .installation-label, .owner-identity > div, .sidebar-brand > span:last-child) { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  #firmSidebar, #ownerSidebar, #firmSidebar .label, #ownerSidebar .menu-label { transition: none; }
}
