/* Desktop sidebar: collapsed by default, expandable on demand. */

@media (min-width:1024px){
  :root{
    --desktop-sidebar-collapsed:76px;
    --desktop-sidebar-expanded:236px;
    --desktop-sidebar-transition:220ms cubic-bezier(.2,.7,.2,1);
  }

  .desktop-sidebar-toggle{
    display:grid!important;
    place-items:center;
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:11px;
    color:var(--cinza-600);
    transition:background var(--desktop-sidebar-transition),color var(--desktop-sidebar-transition),transform var(--desktop-sidebar-transition);
  }

  .desktop-sidebar-toggle:hover{
    background:var(--cinza-050);
    color:var(--verde-escuro);
    transform:scale(1.03);
  }

  .app-shell{
    grid-template-columns:var(--desktop-sidebar-collapsed) minmax(0,1fr)!important;
    transition:grid-template-columns var(--desktop-sidebar-transition);
  }

  .app-shell:has(.sidebar.open){
    grid-template-columns:var(--desktop-sidebar-expanded) minmax(0,1fr)!important;
  }

  .sidebar{
    width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
    padding:16px 10px!important;
    transition:padding var(--desktop-sidebar-transition),background var(--desktop-sidebar-transition);
  }

  /* Collapsed state */
  .sidebar:not(.open) .sidebar-logo{
    width:52px;
    height:52px;
    margin:0 auto 18px;
    overflow:hidden;
    border-radius:14px;
    background:var(--verde-escuro);
    position:relative;
  }

  /* A marca recolhida usa o próprio PNG oficial reduzido. Letra desenhada à
     mão como substituta da logo foi removida: identidade improvisada não
     representa a empresa. */
  .sidebar:not(.open) .sidebar-logo img{
    width:34px;
    height:34px;
    object-fit:contain;
    object-position:center;
  }

  .sidebar:not(.open) .sidebar-title{
    display:none;
  }

  .sidebar:not(.open) .sidebar-nav{
    gap:7px;
  }

  .sidebar:not(.open) .nav-link{
    width:52px;
    min-height:48px;
    margin:0 auto;
    padding:10px!important;
    justify-content:center;
    gap:0!important;
    border-radius:13px;
  }

  .sidebar:not(.open) .nav-link span{
    display:none;
  }

  .sidebar:not(.open) .nav-link svg{
    width:21px;
    height:21px;
    flex:0 0 21px;
  }

  .sidebar:not(.open) .sidebar-spacer{
    min-height:14px;
  }

  .sidebar:not(.open) .sidebar-user{
    width:52px;
    height:52px;
    margin:10px auto 0;
    padding:0;
    justify-content:center;
    border-radius:14px;
    background:var(--cinza-050);
    border:1px solid var(--cinza-200);
  }

  .sidebar:not(.open) .sidebar-user>div:not(.avatar){
    display:none;
  }

  .sidebar:not(.open) .sidebar-user .avatar{
    width:34px;
    height:34px;
    flex:0 0 34px;
  }

  /* Expanded state */
  .sidebar.open{
    padding:16px 14px!important;
  }

  .sidebar.open .sidebar-logo{
    width:100%;
  }

  .sidebar.open .nav-link span,
  .sidebar.open .sidebar-user>div:not(.avatar){
    opacity:1;
    transform:none;
  }

  .sidebar .nav-link span,
  .sidebar .sidebar-user>div:not(.avatar){
    transition:opacity 140ms ease,transform 140ms ease;
  }

  /* The desktop trigger replaces the old always-visible desktop rail. */
  .mobile-menu-btn{
    display:none!important;
  }
}

@media (max-width:1023px){
  .desktop-sidebar-toggle{
    display:none!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .app-shell,
  .sidebar,
  .desktop-sidebar-toggle,
  .sidebar .nav-link span,
  .sidebar .sidebar-user>div:not(.avatar){
    transition:none!important;
  }
}
