/*
  Bloqueio estrutural:
  #page-entrada só aparece quando a tela final nova existe.
  A tela final nova sempre contém .ef-card, #efBusca e #efSave.
*/

/* Estado carregando ou conteúdo antigo */
#page-entrada:not(:has(.ef-card)),
#page-entrada.entrada-final-visible:not(:has(.ef-card)),
#page-entrada:not(:has(#efBusca)),
#page-entrada:not(:has(#efSave)) {
  position: relative !important;
  min-height: 420px !important;
}

/* Esconde qualquer conteúdo antigo */
#page-entrada:not(:has(.ef-card)) > *,
#page-entrada.entrada-final-visible:not(:has(.ef-card)) > *,
#page-entrada:not(:has(#efBusca)) > *,
#page-entrada:not(:has(#efSave)) > * {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Loader discreto */
#page-entrada:not(:has(.ef-card))::before,
#page-entrada.entrada-final-visible:not(:has(.ef-card))::before,
#page-entrada:not(:has(#efBusca))::before,
#page-entrada:not(:has(#efSave))::before {
  content: "Carregando entrada de estoque...";
  visibility: visible !important;
  opacity: 1 !important;
  position: absolute;
  top: 90px;
  left: 28px;
  right: 28px;
  display: block;
  padding: 18px 20px;
  border: 1px solid #e7dfd4;
  border-radius: 16px;
  background: #fff;
  color: #64748b;
  font-weight: 800;
  box-shadow: 0 14px 34px rgba(15,23,42,.06);
  z-index: 50;
}

/* Quando a entrada final estiver pronta, mostra normal */
#page-entrada:has(.ef-card):has(#efBusca):has(#efSave) > * {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

#page-entrada:has(.ef-card):has(#efBusca):has(#efSave)::before {
  display: none !important;
}

/* Segurança extra contra toolbar antiga vazando */
#page-entrada:not(:has(.ef-card)) .ap-toolbar,
#page-entrada:not(:has(.ef-card)) .entrada-pro-card,
#page-entrada:not(:has(.ef-card)) .entrada-tabs,
#page-entrada:not(:has(.ef-card)) .entrada-grid,
#page-entrada:not(:has(.ef-card)) .lote-row,
#page-entrada:not(:has(.ef-card)) #entradaRapidaPanel {
  display: none !important;
}
