/* V39 Sidebar hover shell and topbar utilities
   Collapsed by default, expands over the workspace on hover. */

:root{
  --crm-sidebar-compact:72px;
  --crm-sidebar-expanded:218px;
  --crm-shell-topbar:60px;
}

@media (min-width:761px){
  /* Sidebar stays compact until the pointer enters it. It overlays the page when expanded. */
  #sidebar,
  body.sidebar-collapsed #sidebar{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:var(--crm-sidebar-compact)!important;
    min-width:var(--crm-sidebar-compact)!important;
    max-width:var(--crm-sidebar-compact)!important;
    overflow:hidden!important;
    z-index:1800!important;
    transition:width .22s ease,max-width .22s ease,box-shadow .22s ease!important;
    box-shadow:8px 0 22px rgba(15,23,42,.08)!important;
  }

  #sidebar:hover,
  body.sidebar-collapsed #sidebar:hover,
  #sidebar:focus-within{
    width:var(--crm-sidebar-expanded)!important;
    min-width:var(--crm-sidebar-expanded)!important;
    max-width:var(--crm-sidebar-expanded)!important;
    box-shadow:18px 0 42px rgba(15,23,42,.23)!important;
  }

  /* Workspace always uses the compact rail width, like Ads Manager. */
  #main,
  body.sidebar-collapsed #main{
    left:var(--crm-sidebar-compact)!important;
    width:calc(100% - var(--crm-sidebar-compact))!important;
    max-width:calc(100% - var(--crm-sidebar-compact))!important;
    transition:none!important;
  }

  /* Logo rail matches the 60px topbar and remains small. */
  #sidebar .sidebar-logo,
  body.sidebar-collapsed #sidebar .sidebar-logo,
  #sidebar:hover .sidebar-logo,
  body.sidebar-collapsed #sidebar:hover .sidebar-logo{
    height:var(--crm-shell-topbar)!important;
    min-height:var(--crm-shell-topbar)!important;
    max-height:var(--crm-shell-topbar)!important;
    padding:6px 8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    background:transparent!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
  }
  #sidebar .sidebar-logo::before,
  body.sidebar-collapsed #sidebar .sidebar-logo::before,
  #sidebar:hover .sidebar-logo::before{display:none!important;content:none!important;}
  #sidebar .sidebar-logo-img,
  body.sidebar-collapsed #sidebar .sidebar-logo-img{
    width:46px!important;
    max-width:46px!important;
    height:42px!important;
    max-height:42px!important;
    object-fit:contain!important;
    transition:width .22s ease,max-width .22s ease,height .22s ease!important;
  }
  #sidebar:hover .sidebar-logo-img,
  body.sidebar-collapsed #sidebar:hover .sidebar-logo-img,
  #sidebar:focus-within .sidebar-logo-img{
    width:118px!important;
    max-width:118px!important;
    height:42px!important;
    max-height:42px!important;
  }

  /* Navigation rail */
  #sidebar .sidebar-nav,
  body.sidebar-collapsed #sidebar .sidebar-nav{
    padding:8px 8px 14px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scrollbar-width:none!important;
  }
  #sidebar .sidebar-nav::-webkit-scrollbar{width:0!important;height:0!important;}
  #sidebar:hover .sidebar-nav,
  body.sidebar-collapsed #sidebar:hover .sidebar-nav,
  #sidebar:focus-within .sidebar-nav{
    padding-left:10px!important;
    padding-right:10px!important;
  }

  #sidebar .nav-label,
  #sidebar .nav-section-label,
  #sidebar .nav-group-title,
  body.sidebar-collapsed #sidebar .nav-label,
  body.sidebar-collapsed #sidebar .nav-section-label,
  body.sidebar-collapsed #sidebar .nav-group-title{
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    opacity:0!important;
    overflow:hidden!important;
    pointer-events:none!important;
    transition:opacity .14s ease!important;
  }
  #sidebar:hover .nav-label,
  #sidebar:hover .nav-section-label,
  #sidebar:hover .nav-group-title,
  #sidebar:focus-within .nav-label,
  #sidebar:focus-within .nav-section-label,
  #sidebar:focus-within .nav-group-title{
    height:auto!important;
    margin-top:8px!important;
    padding:7px 10px 4px!important;
    opacity:1!important;
  }

  #sidebar .nav-item,
  body.sidebar-collapsed #sidebar .nav-item{
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:40px!important;
    min-height:40px!important;
    margin:3px auto!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:10px!important;
    border-radius:11px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    font-size:11.5px!important;
    text-indent:0!important;
    transition:width .18s ease,max-width .18s ease,padding .18s ease,background .18s ease!important;
  }
  #sidebar .nav-item .nav-icon,
  body.sidebar-collapsed #sidebar .nav-item .nav-icon{
    flex:0 0 30px!important;
    width:30px!important;
    min-width:30px!important;
    height:30px!important;
    margin-left:8px!important;
    border-radius:9px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  #sidebar:hover .nav-item,
  body.sidebar-collapsed #sidebar:hover .nav-item,
  #sidebar:focus-within .nav-item{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:3px 0!important;
    padding:0 10px 0 0!important;
    overflow:visible!important;
  }
  #sidebar:hover .nav-item .nav-icon,
  body.sidebar-collapsed #sidebar:hover .nav-item .nav-icon,
  #sidebar:focus-within .nav-item .nav-icon{margin-left:6px!important;}

  #sidebar .nav-badge,
  body.sidebar-collapsed #sidebar .nav-badge{
    position:absolute!important;
    right:1px!important;
    top:1px!important;
    min-width:16px!important;
    height:16px!important;
    padding:0 4px!important;
    font-size:9px!important;
  }
  #sidebar:hover .nav-badge,
  body.sidebar-collapsed #sidebar:hover .nav-badge,
  #sidebar:focus-within .nav-badge{
    position:static!important;
    margin-left:auto!important;
  }

  /* Keep the account card if present, remove the duplicated lower sign-out button. */
  #sidebar .sidebar-footer,
  body.sidebar-collapsed #sidebar .sidebar-footer{
    padding:8px!important;
    overflow:hidden!important;
  }
  #sidebar .sidebar-footer .logout-btn{display:none!important;}
  #sidebar .sidebar-user,
  body.sidebar-collapsed #sidebar .sidebar-user{
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    padding:6px!important;
    margin:0 auto!important;
    overflow:hidden!important;
    border-radius:12px!important;
  }
  #sidebar .sidebar-user>div:last-child{display:none!important;}
  #sidebar:hover .sidebar-user,
  body.sidebar-collapsed #sidebar:hover .sidebar-user,
  #sidebar:focus-within .sidebar-user{
    width:100%!important;
    max-width:100%!important;
    padding:8px!important;
    margin:0!important;
  }
  #sidebar:hover .sidebar-user>div:last-child,
  body.sidebar-collapsed #sidebar:hover .sidebar-user>div:last-child,
  #sidebar:focus-within .sidebar-user>div:last-child{display:block!important;}

  /* Patient detail panel uses the compact rail, not the expanded overlay width. */
  #detail-panel{
    width:min(1180px,calc(100vw - 94px))!important;
    max-width:calc(100vw - 94px)!important;
  }
}

/* Topbar utilities requested by the client. */
#topbar{height:var(--crm-shell-topbar)!important;min-height:var(--crm-shell-topbar)!important;}
#topbar .crm-refresh-btn{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0!important;
  border-radius:10px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:18px!important;
  line-height:1!important;
}
#topbar .topbar-utility-icons,
#topbar .topbar-utility-icons .topbar-icon-btn,
#topbar .hub-assistant-chip,
#topbar .hub-notif-btn{display:flex!important;}
#topbar .topbar-utility-icons .topbar-icon-btn{display:inline-flex!important;}
#topbar .topbar-icon-btn[title="Settings"]{display:inline-flex!important;}
#topbar .hub-assistant-chip{white-space:nowrap!important;}

@media (max-width:1180px) and (min-width:761px){
  #topbar .topbar-utility-icons .topbar-icon-btn:nth-child(2),
  #topbar .topbar-utility-icons .topbar-icon-btn:nth-child(3),
  #topbar .topbar-utility-icons .topbar-icon-btn:nth-child(4){display:none!important;}
  #topbar .topbar-icon-btn[title="Settings"]{display:inline-flex!important;}
}

@media (max-width:760px){
  #sidebar .sidebar-footer .logout-btn{display:none!important;}
  #sidebar .sidebar-logo{height:56px!important;min-height:56px!important;}
  #sidebar .sidebar-logo-img{max-width:110px!important;max-height:40px!important;}
}
