/* Estilos do módulo estoque (usa as variáveis de app.css). Fundo branco, cartões com sombra suave. */

/* ---------------------------------------------------------- resumo: cartões lado a lado no computador */
.est-duas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.est-duas > .cartao + .cartao { margin-top: 0; }
.est-duas .cartao-titulo { align-items: flex-start; }
.est-duas .lista { padding-bottom: 4px; }

/* ---------------------------------------------------------- filtros em pílula */
.est-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.est-chip, .est-chip-radio {
  display: inline-flex; align-items: center; gap: 8px; border: 0; background: var(--fundo-2); color: var(--texto-2);
  border-radius: 999px; padding: 8px 16px; min-height: 44px; font-weight: 600; font-size: 14px; cursor: pointer; text-decoration: none;
}
.est-chip:hover, .est-chip-radio:hover { background: #efede6; }
.est-chip.ativo, .est-chip-radio:has(input:checked) { background: var(--grafite); color: #fff; }
.est-chip-radio input { width: 18px; height: 18px; margin: 0; accent-color: var(--ouro); }
.est-filtros { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.est-filtros select { width: auto; min-width: 240px; }
.est-botao-filtro { justify-content: flex-end; }
.est-botao-filtro > span { visibility: hidden; }

/* ---------------------------------------------------------- ficha (rótulo em cima, valor embaixo) */
.est-ficha { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px 20px; }
.est-rotulo { font-size: 12px; color: var(--texto-3); font-weight: 600; }
.est-valor { font-weight: 600; overflow-wrap: anywhere; }
.est-paciente { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.est-paciente .avatar { width: 46px; height: 46px; background: var(--ouro-suave); color: var(--ouro-texto); }
.est-paciente .principal { flex: 1; min-width: 160px; }

/* ---------------------------------------------------------- quantidades e situação */
.est-neg { color: var(--vermelho); }
.est-pos { color: var(--verde); }
.est-estornado td { opacity: .55; }
.est-rot { display: none; }

/* ---------------------------------------------------------- posição: linha do produto e, abaixo, os lotes */
.est-posicao tr.est-produto { cursor: pointer; }
.est-posicao tr.est-produto:hover td { background: var(--fundo-2); }
.est-posicao tr.est-produto td { box-shadow: inset 0 2px 0 var(--linha); }
.est-posicao tr.est-lote td { padding-top: 6px; padding-bottom: 6px; font-size: 13.5px; color: var(--texto-2); box-shadow: none; }
.est-posicao tbody tr:first-child td { box-shadow: none; }

/* ---------------------------------------------------------- linhas de itens (consumo, pedido, solicitação, recebimento) */
.est-item { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 2fr) minmax(96px, .8fr) 44px; gap: 10px 12px; align-items: end; }
.est-item.com-custo { grid-template-columns: minmax(0, 2.4fr) minmax(96px, .8fr) minmax(110px, 1fr) 44px; }
.est-item.sem-lote { grid-template-columns: minmax(0, 3fr) minmax(96px, 1fr) 44px; }
.est-item.est-atender { grid-template-columns: minmax(0, 2fr) minmax(0, 2fr) minmax(96px, .8fr); }
.est-item + .est-item { margin-top: 12px; padding-top: 12px; box-shadow: inset 0 1px 0 var(--linha); }
.est-item-tirar { color: var(--texto-3); }
.est-item-tirar:hover { color: var(--vermelho); background: var(--vermelho-suave); }
.est-receber { display: grid; grid-template-columns: minmax(0, 2fr) minmax(90px, .7fr) minmax(0, 1fr) minmax(0, 1fr) minmax(100px, .9fr) auto; gap: 10px 12px; align-items: end; }
.est-receber + .est-receber { margin-top: 12px; padding-top: 12px; box-shadow: inset 0 1px 0 var(--linha); }

/* ---------------------------------------------------------- inventário */
.inv-contagem { max-width: 130px; }
.inv-dif { font-weight: 600; white-space: nowrap; }

/* ---------------------------------------------------------- celular */
@media screen and (max-width: 899px) {
  .est-duas { grid-template-columns: 1fr; }
  .est-filtros select { width: 100%; min-width: 0; }
  .est-filtros .marcar { width: 100%; }
  .est-rot { display: inline; font-size: 12px; color: var(--texto-3); margin-right: 6px; font-weight: 600; }
  .tabela-cartoes .num-direita { text-align: left; }
  .tabela-cartoes .est-so-pc, .est-receber .est-so-pc { display: none; }
  .est-posicao tr.est-lote { padding: 6px 16px 6px 32px; }
  .est-posicao tfoot tr { padding: 14px 16px; }

  .est-item, .est-item.com-custo, .est-item.sem-lote { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px; }
  .est-item-produto, .est-item-lote { grid-column: 1 / -1; }
  .est-item-qtd { grid-column: 1 / 3; }
  .est-item.com-custo .est-item-qtd { grid-column: 1; }
  .est-item.com-custo .est-item-custo { grid-column: 2; }
  .est-item-tirar { grid-column: 3; }
  .est-item.est-atender { grid-template-columns: minmax(0, 1fr); }
  .est-receber { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .est-receber > .est-rec-produto, .est-receber > .est-rec-dividir { grid-column: 1 / -1; }
  .est-rec-dividir { justify-self: start; }
  .inv-contagem { max-width: none; }
}
