/* GeoRAPS v1.0.23 — sidebar reconstruída do zero.
   Este arquivo é carregado por último para neutralizar regras antigas da sidebar. */
:root{
  --gr23-sidebar-open:224px;
  --gr23-sidebar-closed:72px;
}

/* Base comum: conteúdo sempre começa no topo, sem áreas elásticas antes da marca. */
.app-shell{
  display:grid!important;
  grid-template-columns:var(--gr23-sidebar-open) minmax(0,1fr)!important;
  min-height:100dvh!important;
  align-items:start!important;
  transition:grid-template-columns .2s ease!important;
}
.sidebar{
  position:sticky!important;
  inset:auto!important;
  top:0!important;
  left:auto!important;
  width:var(--gr23-sidebar-open)!important;
  min-width:0!important;
  height:100vh!important;
  height:100dvh!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  max-height:100dvh!important;
  margin:0!important;
  padding:10px 9px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:0!important;
  overflow:hidden!important;
  border-radius:0!important;
  z-index:90!important;
  background:linear-gradient(180deg,#651065 0%,#7e237d 54%,#8e2c8d 100%)!important;
  box-shadow:8px 0 26px rgba(67,11,70,.10)!important;
  transform:none!important;
}
.sidebar:before,.sidebar:after{pointer-events:none!important}
.sidebar-glow{display:none!important}
.sidebar>*{position:relative!important;z-index:2!important}

.sidebar .brand{
  order:0!important;
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:9px!important;
  width:100%!important;
  min-height:52px!important;
  height:auto!important;
  margin:0!important;
  margin-top:0!important;
  margin-bottom:5px!important;
  padding:4px 5px 9px!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
}
.sidebar .brand-logo{
  width:40px!important;
  height:40px!important;
  flex:0 0 40px!important;
  margin:0!important;
  border-radius:12px!important;
}
.sidebar .brand-copy{min-width:0!important;margin:0!important;padding:0!important}
.sidebar .brand-overline{font-size:.47rem!important;line-height:1.1!important;margin:0 0 2px!important;letter-spacing:.08em!important}
.sidebar .brand strong{font-size:.94rem!important;line-height:1.05!important}
.sidebar .brand small{font-size:.56rem!important;line-height:1.15!important;margin-top:2px!important}

.sidebar .institution-mini{
  order:1!important;
  flex:0 0 auto!important;
  min-height:48px!important;
  height:auto!important;
  margin:4px 2px 6px!important;
  padding:6px 7px!important;
  border-radius:11px!important;
}
.sidebar .municipal-coat-mini{width:30px!important;height:35px!important}
.sidebar .institution-mini strong{font-size:.65rem!important;line-height:1.1!important}
.sidebar .institution-mini small{font-size:.54rem!important;line-height:1.1!important}

.sidebar-nav-scroll{
  order:2!important;
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  margin:0!important;
  padding:0 1px 5px 0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
}
.sidebar .nav-title{
  margin:8px 7px 3px!important;
  padding:0!important;
  font-size:.55rem!important;
  letter-spacing:.09em!important;
}
.sidebar .nav-link{
  min-height:38px!important;
  height:auto!important;
  margin:2px 0!important;
  padding:4px 6px!important;
  gap:7px!important;
  border-radius:10px!important;
  justify-content:flex-start!important;
  font-size:.78rem!important;
}
.sidebar .menu-icon{
  width:29px!important;
  height:29px!important;
  flex:0 0 29px!important;
  border-radius:9px!important;
  font-size:.84rem!important;
}
.sidebar .nav-label{font-size:.78rem!important;line-height:1.1!important}
.sidebar-footer{
  order:3!important;
  flex:0 0 auto!important;
  margin:4px 0 0!important;
  padding:6px 1px 0!important;
}
.sidebar .security-badge{min-height:34px!important;padding:4px 5px!important;border-radius:10px!important}
.sidebar .security-badge>span{width:24px!important;height:24px!important;flex:0 0 24px!important;font-size:.7rem!important}
.sidebar .security-badge strong{font-size:.61rem!important}
.sidebar .security-badge small{font-size:.50rem!important}
.sidebar-version{font-size:.52rem!important;margin-top:3px!important}

.sidebar-collapse-button{
  display:grid!important;
  place-items:center!important;
  position:absolute!important;
  top:13px!important;
  right:-14px!important;
  width:30px!important;
  height:30px!important;
  margin:0!important;
  padding:0!important;
  border-radius:9px!important;
  z-index:400!important;
  pointer-events:auto!important;
}
.sidebar-mobile-close{display:none!important}
.main{grid-column:2!important;min-width:0!important;width:auto!important;margin:0!important}
.sidebar-overlay{display:none!important}

/* PC/tablet ficam recolhidos por padrão; expandir é uma ação explícita. */
html.sidebar-collapsed-pref .app-shell,
.app-shell.sidebar-collapsed{
  grid-template-columns:var(--gr23-sidebar-closed) minmax(0,1fr)!important;
}
html.sidebar-collapsed-pref .sidebar,
.app-shell.sidebar-collapsed .sidebar{
  width:var(--gr23-sidebar-closed)!important;
  padding-left:7px!important;
  padding-right:7px!important;
}
html.sidebar-collapsed-pref .sidebar .brand,
.app-shell.sidebar-collapsed .sidebar .brand{
  justify-content:center!important;
  padding-left:0!important;
  padding-right:0!important;
  gap:0!important;
}
html.sidebar-collapsed-pref .sidebar .brand-logo,
.app-shell.sidebar-collapsed .sidebar .brand-logo{width:40px!important;height:40px!important;flex-basis:40px!important}
html.sidebar-collapsed-pref .sidebar .brand-copy,
html.sidebar-collapsed-pref .sidebar .institution-mini,
html.sidebar-collapsed-pref .sidebar .nav-label,
html.sidebar-collapsed-pref .sidebar .nav-title,
html.sidebar-collapsed-pref .sidebar .sidebar-footer,
.app-shell.sidebar-collapsed .sidebar .brand-copy,
.app-shell.sidebar-collapsed .sidebar .institution-mini,
.app-shell.sidebar-collapsed .sidebar .nav-label,
.app-shell.sidebar-collapsed .sidebar .nav-title,
.app-shell.sidebar-collapsed .sidebar .sidebar-footer{
  display:none!important;
}
html.sidebar-collapsed-pref .sidebar .sidebar-nav-scroll,
.app-shell.sidebar-collapsed .sidebar .sidebar-nav-scroll{padding-top:4px!important}
html.sidebar-collapsed-pref .sidebar .nav-link,
.app-shell.sidebar-collapsed .sidebar .nav-link{
  justify-content:center!important;
  gap:0!important;
  padding:5px!important;
  margin:3px 0!important;
}
html.sidebar-collapsed-pref .sidebar .menu-icon,
.app-shell.sidebar-collapsed .sidebar .menu-icon{
  width:36px!important;height:36px!important;flex:0 0 36px!important;border-radius:11px!important;
}

@media (min-width:761px) and (max-width:1180px){
  :root{--gr23-sidebar-open:210px;--gr23-sidebar-closed:64px}
  .sidebar{padding-left:7px!important;padding-right:7px!important}
  .content{padding-left:16px!important;padding-right:16px!important}
}

/* Mobile: drawer estreito, fechado por transform e com a marca no topo real. */
@media (max-width:760px){
  html.sidebar-collapsed-pref .app-shell,.app-shell{display:block!important;min-height:100dvh!important}
  .main{width:100%!important;grid-column:auto!important}
  .sidebar{
    position:fixed!important;
    top:0!important;
    right:auto!important;
    bottom:auto!important;
    left:0!important;
    width:min(236px,78vw)!important;
    max-width:236px!important;
    min-width:0!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    padding:9px 8px!important;
    border-radius:0 14px 14px 0!important;
    transform:translate3d(-105%,0,0)!important;
    transition:transform .2s ease!important;
    box-shadow:12px 0 30px rgba(42,7,45,.24)!important;
    overflow:hidden!important;
    z-index:500!important;
  }
  .sidebar.open{left:0!important;transform:translate3d(0,0,0)!important}
  .sidebar .brand{
    display:flex!important;
    min-height:50px!important;
    margin:0 0 4px!important;
    padding:3px 38px 8px 3px!important;
    justify-content:flex-start!important;
  }
  .sidebar .brand-logo{width:38px!important;height:38px!important;flex:0 0 38px!important}
  .sidebar .brand-copy{display:block!important;opacity:1!important;visibility:visible!important;width:auto!important;height:auto!important;max-width:145px!important;overflow:hidden!important}
  .sidebar .institution-mini{display:none!important}
  .sidebar-nav-scroll{display:block!important;flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;margin:0!important;padding:0 1px 6px 0!important}
  .sidebar .nav-title{display:block!important;opacity:.76!important;visibility:visible!important;width:auto!important;height:auto!important;margin:7px 6px 3px!important}
  .sidebar .nav-label{display:block!important;opacity:1!important;visibility:visible!important;width:auto!important;height:auto!important;max-width:150px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .sidebar .nav-link{justify-content:flex-start!important;min-height:37px!important;padding:4px 5px!important;gap:7px!important}
  .sidebar-footer{display:none!important}
  .sidebar-collapse-button{display:none!important}
  .sidebar-mobile-close{
    display:grid!important;
    place-items:center!important;
    position:absolute!important;
    top:9px!important;
    right:8px!important;
    width:31px!important;
    height:31px!important;
    margin:0!important;
    padding:0!important;
    border-radius:9px!important;
    z-index:700!important;
    background:rgba(255,255,255,.14)!important;
    color:#fff!important;
    border:1px solid rgba(255,255,255,.18)!important;
    font-size:1.25rem!important;
  }
  .sidebar-overlay{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    z-index:450!important;
    background:rgba(29,18,31,.34)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:opacity .2s ease,visibility .2s ease!important;
  }
  .sidebar-overlay.show{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  body.sidebar-mobile-open{overflow:hidden!important}
}
