/* ConectaEmpresa — Mobile Critical Flow 2.8.1
   Hotfix pós-Fase 8: menu acessível em retrato + login rolável.
   Somente layout/viewport; sem dados, rotas, permissões ou ações novas. */

:root{
 --ce-mobile-safe-x:max(12px,env(safe-area-inset-left,0px));
 --ce-mobile-safe-r:max(12px,env(safe-area-inset-right,0px));
 --ce-mobile-safe-top:max(10px,env(safe-area-inset-top,0px));
 --ce-mobile-safe-bottom:max(14px,env(safe-area-inset-bottom,0px));
}

/* LOGIN — a página deve crescer e rolar; nunca prender o formulário ao viewport. */
html[data-ce-login-flow="1"],
html[data-ce-login-flow="1"] body{
 height:auto!important;
 min-height:100%!important;
 max-height:none!important;
 overflow-x:hidden!important;
 overflow-y:auto!important;
 overscroll-behavior-y:auto!important;
 -webkit-overflow-scrolling:touch;
}
html[data-ce-login-flow="1"] body.ce-login-surface{
 position:static!important;
 touch-action:pan-y!important;
}
html[data-ce-login-flow="1"] body.ce-login-surface #app{
 min-height:100dvh!important;
 height:auto!important;
 max-height:none!important;
 overflow:visible!important;
}
html[data-ce-login-flow="1"] body.ce-login-surface .login-bg{
 box-sizing:border-box!important;
 width:100%!important;
 min-height:100dvh!important;
 height:auto!important;
 max-height:none!important;
 overflow:visible!important;
 align-items:flex-start!important;
 justify-content:center!important;
 padding:var(--ce-mobile-safe-top) var(--ce-mobile-safe-r) var(--ce-mobile-safe-bottom) var(--ce-mobile-safe-x)!important;
 touch-action:pan-y!important;
}
html[data-ce-login-flow="1"] body.ce-login-surface .login-split{
 width:min(100%,940px)!important;
 min-height:0!important;
 height:auto!important;
 max-height:none!important;
 overflow:visible!important;
 margin:auto 0!important;
}
html[data-ce-login-flow="1"] body.ce-login-surface .login-form-col,
html[data-ce-login-flow="1"] body.ce-login-surface .lcard{
 min-height:0!important;
 height:auto!important;
 max-height:none!important;
 overflow:visible!important;
}

@media(max-width:760px){
 html[data-ce-login-flow="1"] body.ce-login-surface .login-bg{
   display:block!important;
   padding:0!important;
 }
 html[data-ce-login-flow="1"] body.ce-login-surface .login-split{
   width:100%!important;
   max-width:none!important;
   border-radius:0!important;
   margin:0!important;
 }
 html[data-ce-login-flow="1"] body.ce-login-surface .login-form-col{
   box-sizing:border-box!important;
   width:100%!important;
   min-height:100dvh!important;
   align-items:flex-start!important;
   padding:max(24px,env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px)) max(32px,env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px))!important;
 }
 html[data-ce-login-flow="1"] body.ce-login-surface .login-split .lcard{
   width:100%!important;
   max-width:430px!important;
   margin:0 auto!important;
   padding-bottom:12px!important;
 }
}

/* APP MOBILE — hamburger sempre visível e drawer contido na largura real da tela. */
@media(max-width:860px){
 html[data-ce-mobile-critical="1"],
 html[data-ce-mobile-critical="1"] body{
   max-width:100%!important;
   overflow-x:hidden!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell{
   width:100%!important;
   min-width:0!important;
   max-width:100%!important;
   overflow-x:clip!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .maincol{
   width:100%!important;
   min-width:0!important;
   max-width:100%!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .topbar{
   box-sizing:border-box!important;
   width:100%!important;
   min-width:0!important;
   max-width:100%!important;
   overflow:visible!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .tb-toggle{
   display:inline-flex!important;
   align-items:center!important;
   justify-content:center!important;
   visibility:visible!important;
   opacity:1!important;
   width:44px!important;
   min-width:44px!important;
   max-width:44px!important;
   min-height:44px!important;
   flex:0 0 44px!important;
   position:relative!important;
   z-index:72!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .sidebar{
   position:fixed!important;
   inset:0 auto 0 0!important;
   box-sizing:border-box!important;
   width:min(88vw,320px)!important;
   min-width:0!important;
   max-width:calc(100vw - 20px)!important;
   height:100dvh!important;
   min-height:0!important;
   max-height:100dvh!important;
   display:flex!important;
   flex-direction:column!important;
   overflow:hidden!important;
   transform:translate3d(-105%,0,0)!important;
   visibility:visible!important;
   pointer-events:auto!important;
   overscroll-behavior:contain!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell.navopen .sidebar{
   transform:translate3d(0,0,0)!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .sb-brand,
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .sb-foot{
   flex:0 0 auto!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .sb-nav{
   flex:1 1 auto!important;
   min-height:0!important;
   max-height:none!important;
   overflow-x:hidden!important;
   overflow-y:auto!important;
   overscroll-behavior-y:contain!important;
   -webkit-overflow-scrolling:touch!important;
   scrollbar-gutter:stable;
   padding-bottom:max(24px,env(safe-area-inset-bottom,0px))!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .sb-backdrop{
   touch-action:manipulation;
 }
}

/* Retrato estreito: reserva a primeira célula do topo exclusivamente para o menu.
   As demais ações podem rolar dentro da própria faixa, sem empurrar o hamburger. */
@media(max-width:620px){
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .topbar{
   display:grid!important;
   grid-template-columns:44px minmax(0,1fr)!important;
   grid-template-rows:auto auto!important;
   gap:7px 8px!important;
   align-items:center!important;
   padding:max(7px,env(safe-area-inset-top,0px)) max(9px,env(safe-area-inset-right,0px)) 8px max(9px,env(safe-area-inset-left,0px))!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .tb-toggle{
   grid-column:1!important;
   grid-row:1!important;
   order:initial!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .ce3-top-actions{
   grid-column:2!important;
   grid-row:1!important;
   order:initial!important;
   justify-self:stretch!important;
   width:100%!important;
   min-width:0!important;
   max-width:100%!important;
   margin:0!important;
   overflow-x:auto!important;
   overflow-y:hidden!important;
   overscroll-behavior-inline:contain!important;
   scrollbar-width:none!important;
   -webkit-overflow-scrolling:touch!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .ce3-top-actions::-webkit-scrollbar{display:none!important}
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .ce3-command-search{
   grid-column:1 / -1!important;
   grid-row:2!important;
   order:initial!important;
   width:100%!important;
   min-width:0!important;
   max-width:none!important;
 }
}

/* Telas baixas: prioriza navegação e mantém todo o menu alcançável por scroll. */
@media(max-width:860px) and (max-height:700px){
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .sb-brand{
   min-height:52px!important;
   padding-block:9px!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .sb-foot{
   padding-block:8px!important;
 }
 html[data-ce-mobile-critical="1"] body:not(.seo-public):not(.ce-login-surface):not(.ce-setup-surface) .ce3-command-shell .ce3-nav-group{
   padding-bottom:4px!important;
 }
}

@media(prefers-reduced-motion:reduce){
 html[data-ce-mobile-critical="1"] .ce3-command-shell .sidebar{transition:none!important}
}
@media(forced-colors:active){
 html[data-ce-mobile-critical="1"] .ce3-command-shell .tb-toggle{border:1px solid ButtonText!important}
}


/* PUBLIC MOBILE NAV FIX 2.8.2
   Corrige o cabeçalho da landing em retrato: reserva espaço real para Entrar + hambúrguer.
   Não altera login, app interno, rotas ou comportamento de autenticação. */
@media(max-width:980px){
 body.seo-public #landing-seo .lp-nav{
   box-sizing:border-box!important;
   width:100%!important;
   max-width:100%!important;
   display:grid!important;
   grid-template-columns:minmax(0,1fr) auto auto!important;
   align-items:center!important;
   gap:8px!important;
   padding-left:max(14px,env(safe-area-inset-left,0px))!important;
   padding-right:max(14px,env(safe-area-inset-right,0px))!important;
 }
 body.seo-public #landing-seo .lp-brand{
   min-width:0!important;
   max-width:100%!important;
   overflow:hidden!important;
 }
 body.seo-public #landing-seo .lp-brand>span:last-child{
   min-width:0!important;
   overflow:hidden!important;
   text-overflow:ellipsis!important;
   white-space:nowrap!important;
 }
 body.seo-public #landing-seo .lp-suite-chip{display:none!important}
 body.seo-public #landing-seo .lp-actions{
   grid-column:2!important;
   margin:0!important;
   min-width:0!important;
   display:flex!important;
   align-items:center!important;
   gap:6px!important;
 }
 body.seo-public #landing-seo .lp-burger{
   grid-column:3!important;
   display:inline-flex!important;
   align-items:center!important;
   justify-content:center!important;
   visibility:visible!important;
   opacity:1!important;
   width:44px!important;
   min-width:44px!important;
   max-width:44px!important;
   height:44px!important;
   min-height:44px!important;
   padding:0!important;
   margin:0!important;
   position:relative!important;
   z-index:3!important;
 }
 body.seo-public #landing-seo .lp-menu{
   box-sizing:border-box!important;
   left:0!important;
   right:0!important;
   width:100%!important;
   max-width:100%!important;
   max-height:calc(100dvh - 72px)!important;
   overflow-y:auto!important;
   overscroll-behavior:contain!important;
   -webkit-overflow-scrolling:touch!important;
   padding-left:max(18px,env(safe-area-inset-left,0px))!important;
   padding-right:max(18px,env(safe-area-inset-right,0px))!important;
 }
}
@media(max-width:560px){
 body.seo-public #landing-seo .lp-install{display:none!important}
 body.seo-public #landing-seo .lp-actions .lp-btn.pri{
   min-height:44px!important;
   padding:9px 13px!important;
   white-space:nowrap!important;
 }
 body.seo-public #landing-seo .lp-nav{
   grid-template-columns:minmax(0,1fr) auto 44px!important;
 }
}
@media(max-width:380px){
 body.seo-public #landing-seo .lp-brand{font-size:.90rem!important;gap:8px!important}
 body.seo-public #landing-seo .lp-brand-mark{width:32px!important;height:32px!important;flex:0 0 32px!important}
 body.seo-public #landing-seo .lp-actions .lp-btn.pri{padding-inline:10px!important;font-size:.84rem!important}
}


/* PUBLIC MENU VIEWPORT FIX 2.8.3
   Menu da landing preso ao viewport em telas móveis.
   Independe de body.seo-public e do fluxo/largura do cabeçalho. */
@media (max-width:980px){
  #landing-seo .lp-hd{
    overflow:visible!important;
    z-index:2147483000!important;
  }

  #landing-seo .lp-nav{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding-right:max(66px,calc(56px + env(safe-area-inset-right,0px)))!important;
    overflow:visible!important;
  }

  #landing-seo .lp-suite-chip{
    display:none!important;
  }

  #landing-seo #lp-menu-toggle.lp-burger{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    position:fixed!important;
    top:max(10px,calc(env(safe-area-inset-top,0px) + 8px))!important;
    right:max(10px,calc(env(safe-area-inset-right,0px) + 8px))!important;
    left:auto!important;
    bottom:auto!important;
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    flex:0 0 46px!important;
    align-items:center!important;
    justify-content:center!important;
    z-index:2147483646!important;
    touch-action:manipulation!important;
  }

  #landing-seo #lp-menu.lp-menu{
    position:fixed!important;
    top:max(66px,calc(env(safe-area-inset-top,0px) + 64px))!important;
    left:max(8px,env(safe-area-inset-left,0px))!important;
    right:max(8px,env(safe-area-inset-right,0px))!important;
    bottom:auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    max-height:calc(100dvh - max(82px,calc(env(safe-area-inset-top,0px) + 80px)))!important;
    margin:0!important;
    padding:10px 18px max(18px,env(safe-area-inset-bottom,0px))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:0!important;
    border:1px solid rgba(125,211,252,.18)!important;
    border-radius:16px!important;
    box-shadow:0 24px 60px rgba(2,8,23,.38)!important;
    z-index:2147483645!important;
  }

  #landing-seo #lp-nav:not([data-open="1"]) #lp-menu.lp-menu{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  #landing-seo #lp-nav[data-open="1"] #lp-menu.lp-menu{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }

  #landing-seo #lp-menu.lp-menu a{
    display:block!important;
    width:100%!important;
    min-height:44px!important;
    padding:12px 2px!important;
  }
}

@media (max-width:560px){
  #landing-seo .lp-install{
    display:none!important;
  }

  #landing-seo .lp-actions{
    min-width:0!important;
    margin-left:auto!important;
    margin-right:0!important;
  }

  #landing-seo .lp-actions .lp-btn.pri{
    min-height:44px!important;
    white-space:nowrap!important;
    padding:9px 12px!important;
  }
}

@media (max-width:390px){
  #landing-seo .lp-actions .lp-btn.pri{
    display:none!important;
  }

  #landing-seo .lp-nav{
    padding-right:max(64px,calc(54px + env(safe-area-inset-right,0px)))!important;
  }
}


/* PUBLIC MOBILE ACTIONS RESTORE 2.8.5
   Mantém Instalar app + Entrar visíveis sem competir com o hamburger fixo. */
@media (max-width:560px){
  #landing-seo .lp-nav{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    row-gap:8px!important;
    align-items:center!important;
    min-height:auto!important;
    padding-top:max(10px,env(safe-area-inset-top,0px))!important;
    padding-bottom:10px!important;
    padding-right:max(66px,calc(56px + env(safe-area-inset-right,0px)))!important;
  }

  #landing-seo .lp-brand{
    grid-row:1!important;
    min-width:0!important;
    max-width:100%!important;
  }

  #landing-seo .lp-actions{
    grid-row:2!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
  }

  #landing-seo .lp-install,
  #landing-seo .lp-actions .lp-btn.pri{
    display:inline-flex!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:44px!important;
    padding:9px 10px!important;
    font-size:.82rem!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  #landing-seo #lp-menu.lp-menu{
    top:max(118px,calc(env(safe-area-inset-top,0px) + 116px))!important;
    max-height:calc(100dvh - max(132px,calc(env(safe-area-inset-top,0px) + 130px)))!important;
  }
}

@media (max-width:390px){
  #landing-seo .lp-actions{
    grid-template-columns:1fr 1fr!important;
  }

  #landing-seo .lp-install,
  #landing-seo .lp-actions .lp-btn.pri{
    display:inline-flex!important;
    font-size:.78rem!important;
    padding-inline:8px!important;
  }

  #landing-seo .lp-install span{
    display:inline!important;
  }
}


/* PWA INSTALL ALWAYS VISIBLE 2.8.7
   Na landing pública, visibilidade não depende de beforeinstallprompt,
   data-ready ou data-installed. O JS decide a ação do clique. */
#landing-seo #lp-install-pwa.lp-install{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}
#landing-seo #lp-install-pwa.lp-install[data-installed="1"]{
  display:inline-flex!important;
}
