/* GestorPro V95.0 — Vendas / carrinho mobile consolidado
   Fonte única das regras finais do carrinho.
   Não criar overrides de carrinho em outros arquivos.
*/

/* A tela de Vendas contém overlays fixos; ela nao pode permanecer transformada. */
.view-root > .sales-workspace {
  animation: none !important;
  transform: none !important;
  filter: none !important;
  perspective: none !important;
}

@media (max-width: 980px) {
  html.sale-cart-open,
  body.sale-cart-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  body.sale-cart-open .sale-cart-backdrop,
  .sale-cart-backdrop.is-open {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    z-index: 1400 !important;
    transform: none !important;
  }

  body.sale-cart-open .sale-cart-panel,
  .sale-cart-panel.is-open {
    box-sizing: border-box !important;
    position: fixed !important;
    top: var(--sale-cart-center-y, 50dvh) !important;
    right: auto !important;
    bottom: auto !important;
    left: var(--sale-cart-center-x, 50vw) !important;
    z-index: 1401 !important;

    /* Block evita qualquer flex/grid antigo distribuir espaco vazio. */
    display: block !important;
    width: min(520px, calc(var(--sale-cart-vv-width, 100vw) - 24px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: min(700px, var(--sale-cart-vv-max-h, calc(100dvh - 24px))) !important;
    margin: 0 !important;
    padding: 10px 11px 11px !important;

    border-radius: 18px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    transform: translate3d(-50%, -50%, 0) !important;
    transform-origin: center center !important;
    contain: paint !important;
  }

  .sale-cart-panel:not(.is-open) {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .sale-cart-panel.is-open {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .sale-cart-panel .sale-cart-handle,
  .sale-cart-panel .sale-cart-total-card {
    display: none !important;
  }

  .sale-cart-panel .sale-cart-head {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 0 0 7px !important;
  }

  .sale-cart-panel .sale-cart-head p {
    display: none !important;
  }

  .sale-cart-panel .sale-cart-receipt-head {
    display: grid !important;
    width: 100% !important;
    margin: 0 !important;
  }

  /* Lista natural: sem item nao cria vao; com itens limita a ~5 registros. */
  .sale-cart-panel .sale-cart-list {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 228px !important;
    margin: 0 !important;
    padding: 3px 1px 5px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .sale-cart-panel.is-empty .sale-cart-list {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 10px 2px 12px !important;
    overflow: visible !important;
  }

  .sale-cart-panel.is-empty .sale-cart-empty {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    line-height: 1.35 !important;
  }

  .sale-cart-panel .sale-cart-checkout {
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 7px 1px 1px !important;
    overflow: visible !important;
  }

  .sale-cart-panel .sale-summary {
    margin-top: 0 !important;
  }

  .sale-cart-panel .sale-payment-grid {
    margin-top: 5px !important;
  }

  .sale-cart-panel .finish-sale-btn {
    position: static !important;
    width: 100% !important;
    min-height: 44px !important;
    margin: 7px 0 0 !important;
  }

  body.sale-cart-open .mobile-bottom-nav,
  body.sale-cart-open .mobile-sale-cart-bar {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

@media (max-width: 430px) {
  body.sale-cart-open .sale-cart-panel,
  .sale-cart-panel.is-open {
    width: calc(var(--sale-cart-vv-width, 100vw) - 18px) !important;
    max-height: min(680px, var(--sale-cart-vv-max-h, calc(100dvh - 18px))) !important;
    padding: 9px !important;
    border-radius: 16px !important;
  }

  .sale-cart-panel .sale-cart-list {
    max-height: 210px !important;
  }

  .sale-cart-panel.is-empty .sale-cart-list {
    max-height: none !important;
  }
}

@media (max-width: 360px), (max-height: 650px) {
  body.sale-cart-open .sale-cart-panel,
  .sale-cart-panel.is-open {
    width: calc(var(--sale-cart-vv-width, 100vw) - 16px) !important;
    max-height: var(--sale-cart-vv-max-h, calc(100dvh - 16px)) !important;
  }

  .sale-cart-panel .sale-cart-list {
    max-height: 160px !important;
  }

  .sale-cart-panel.is-empty .sale-cart-list {
    max-height: none !important;
  }
}


/* -----------------------------------------------------------------
   V95.1 — acabamento visual do topo do carrinho
   Uniformiza o cabeçalho, remove a sombra quadrada e melhora o X.
   ----------------------------------------------------------------- */
.sale-cart-panel .sale-cart-head {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(17, 24, 32, 0.08) !important;
  border-radius: 0 !important;
  margin: 0 0 10px !important;
  padding: 0 0 12px !important;
}

.sale-cart-panel .sale-cart-head > div {
  min-width: 0 !important;
  display: grid !important;
  gap: 2px !important;
}

.sale-cart-panel .sale-cart-head h3 {
  display: flex !important;
  align-items: baseline !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin: 0 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.08 !important;
}

.sale-cart-panel .sale-cart-head h3 span {
  color: #6D7782 !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  line-height: 1.12 !important;
}

.sale-cart-panel .sale-cart-head p {
  margin: 0 !important;
  color: #7E8792 !important;
  font-size: 0.79rem !important;
  line-height: 1.28 !important;
}

.sale-cart-panel .sale-cart-close-btn {
  flex: 0 0 42px !important;
  display: inline-grid !important;
  place-items: center !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(17, 24, 32, 0.11) !important;
  border-radius: 14px !important;
  background: linear-gradient(180deg, #FFFFFF, #F7FAFB) !important;
  color: #111820 !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset !important;
  font-size: 1.55rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

.sale-cart-panel .sale-cart-close-btn:hover {
  background: rgba(22, 141, 76, 0.07) !important;
  border-color: rgba(22, 141, 76, 0.22) !important;
  color: #0F6E3A !important;
  transform: none !important;
}

.sale-cart-panel .sale-cart-close-btn:active {
  transform: scale(0.97) !important;
}

@media (max-width: 980px) {
  .sale-cart-panel .sale-cart-head {
    margin-bottom: 8px !important;
    padding-bottom: 10px !important;
  }

  .sale-cart-panel .sale-cart-head h3 {
    font-size: 1rem !important;
  }

  .sale-cart-panel .sale-cart-head h3 span {
    font-size: 0.84rem !important;
  }

  .sale-cart-panel .sale-cart-close-btn {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    border-radius: 13px !important;
    font-size: 1.45rem !important;
  }
}

@media (max-width: 430px) {
  .sale-cart-panel .sale-cart-head {
    gap: 10px !important;
  }

  .sale-cart-panel .sale-cart-head h3 {
    font-size: 0.98rem !important;
  }

  .sale-cart-panel .sale-cart-head h3 span {
    font-size: 0.8rem !important;
  }
}


/* V95.7 — +Info do histórico de Vendas mais fino e centralizado no mobile */
@media (max-width: 700px) {
  .sales-entity-table .entity-actions-cell {
    padding-top: 3px !important;
  }

  .sales-entity-table .entity-actions-cell .button-row {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: 100% !important;
  }

  .sales-entity-table .entity-actions-cell .entity-primary-mobile-action {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 58px !important;
    height: 24px !important;
    min-height: 24px !important;
    margin: 0 !important;
    padding: 0 9px !important;
    border-radius: 7px !important;
    font-size: 0.65rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-align: center !important;
    vertical-align: middle !important;
  }
}


/* V95.8 — +Info do histórico sempre clicável e centralizado. */
@media (max-width: 700px) {
  .sales-entity-table .entity-actions-cell .entity-primary-mobile-action {
    position: relative !important;
    z-index: 2 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
    user-select: none !important;
  }
}
