/* Laboratório v2 — Caixa e nota fiscal (e WorkLab/Radiologia) (prefixo lbf-). Só este grupo edita este arquivo.
   Tokens --p-* herdados de .mm (claro/escuro). Base comum: ../mc-modulo-laboratorio.css (lb-).
   Telas: /laboratorio/caixa (+ /caixa/{id}/imprimir), /laboratorio/entrada-nota, /laboratorio/resultados-worklab,
   /laboratorio/radiologia. Sem media query de largura: a escala .mc-scaled cuida (1366 → 1600 → 2000). */

/* ------------------------------------------------------------------ peças comuns */
:is(.mm, .mm-layer) .prmd-field.lbf-num { text-align: right; font-variant-numeric: tabular-nums; }
:is(.mm, .mm-layer) .prmd-field.err { border-color: var(--p-red); box-shadow: 0 0 0 3px rgba(220, 38, 38, .12); }
.lbf-sub { font-size: .68rem; color: var(--p-faint); font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.lbf-pac { font-weight: 700; color: var(--p-ink); }
.lbf-neg { color: var(--p-red) !important; }
.lbf-fim { display: flex; align-items: flex-start; padding-top: 21px; }
.lbf-largo { width: 100%; height: 37px; justify-content: center; }
.lbf-w110 { width: 110px; }
.lbf-w150 { width: 150px; }
.lbf-hora { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--p-muted); }
.lbf-rolagem { max-height: 470px; }
.lbf-rolagem thead th { position: sticky; top: 0; z-index: 1; }
.mm-input.lbf-data { height: 30px; padding: 0 8px; font-size: .74rem; width: 132px; }

/* tabela: rodapé de total e linha estornada */
.lbf-tbl tfoot td { background: var(--p-soft); font-weight: 800; color: var(--p-ink); border-top: 1px solid var(--p-border); padding: 9px 12px; }
.lbf-tbl tbody tr.lbf-estornado td { opacity: .62; }
.lbf-tbl tbody tr.lbf-estornado td.num { text-decoration: line-through; }
.lbf-tbl .mm-chip { white-space: nowrap; }
.lbf-tbl td.num, .lbf-tbl th.num, .lbf-tbl .mm-mono { white-space: nowrap; }
.lbf-conferido-linha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.lbf-conferido-linha .prmd-field { width: 190px; flex: none; }

/* linhas "rótulo ........ valor" das colunas de contexto dos modais */
.lbf-side { display: flex; flex-direction: column; gap: 12px; }
.lbf-linha { display: flex; justify-content: space-between; gap: 10px; font-size: .74rem; padding: 6px 0; border-bottom: 1px dashed var(--p-border); }
.lbf-linha:last-child { border-bottom: 0; }
.lbf-linha > span:first-child { color: var(--p-faint); font-weight: 700; }
.lbf-linha > span:last-child { color: var(--p-ink); font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.lbf-linha.total { border-top: 1px solid var(--p-border-strong); border-bottom: 0; margin-top: 4px; padding-top: 8px; }
.lbf-linha.total > span { color: var(--p-ink) !important; font-weight: 800; font-size: .82rem; }
.lbf-linha .lbf-ex-nome { color: var(--p-text) !important; font-weight: 600 !important; }
.lbf-total-big { font-size: 1.6rem; font-weight: 800; color: var(--p-ink); letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
.lbf-pac-card { display: flex; align-items: center; gap: 10px; }

/* ------------------------------------------------------------------ Caixa */
.lbf-colunas { align-items: start; }
.lbf-exames { display: flex; flex-wrap: wrap; gap: 4px; max-width: 340px; }
.lbf-exames .mm-tag { font-size: .66rem; padding: .12rem .45rem; max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lbf-busca-fila { min-width: 230px; }
.lbf-busca-fila input { height: 32px; }
.lbf-formas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

/* formas de pagamento (receber e avulso) */
.lbf-pagto { display: flex; flex-direction: column; gap: 10px; }
.lbf-pagto-linha { display: grid; grid-template-columns: 210px 170px 34px; gap: 8px; align-items: center; }
.lbf-tudo-em { gap: 6px; }
.lbf-soma { font-size: .78rem; color: var(--p-muted); }
.lbf-soma b { color: var(--p-ink); font-size: .9rem; margin-left: 4px; font-variant-numeric: tabular-nums; }
.lbf-desconto .prmd-flabel { margin: 0; }
.lbf-desconto .lbf-desconto-pct { width: 90px; }
.lbf-transferir { align-items: flex-start; line-height: 1.4; }
.lbf-transferir .trk { margin-top: 1px; }

/* fechamento: recebido por forma */
.lbf-forma { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--p-border-soft); border-radius: 10px; background: var(--p-soft); }
.lbf-forma .mm-item-ico { width: 32px; height: 32px; font-size: 16px; flex: none; }
.lbf-forma-nome { font-size: .78rem; font-weight: 800; color: var(--p-ink); }
.lbf-forma-val { font-size: .86rem; font-weight: 800; color: var(--p-ink); font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------ Entrada de Nota Fiscal */
.lbf-nf-num { font-family: var(--p-mono); font-weight: 800; color: var(--p-ink); font-size: .82rem; }
.lbf-upload { position: relative; display: inline-flex; overflow: hidden; }
.lbf-upload input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font-size: 0; }
.lbf-upload.off input[type=file] { pointer-events: none; }
.lbf-nota-cancelada td { opacity: .6; }
.lbf-nota-cancelada td.num { text-decoration: line-through; }
.lbf-itens-vazio { padding: 22px 10px; }
.lbf-boletos { display: flex; flex-direction: column; gap: 6px; }
.lbf-boleto { display: grid; grid-template-columns: 44px minmax(0, 1fr) 112px; gap: 6px; align-items: center; }
.lbf-boleto-n { font-size: .66rem; font-weight: 800; color: var(--p-muted); text-align: center; background: var(--p-soft2); border-radius: 6px; padding: 5px 0; }
.lbf-conf-ok { color: var(--p-green); }
.lbf-conf-ruim { color: var(--p-red); }
.lbf-escolhido { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--p-blue-line); background: var(--p-blue-soft); border-radius: 10px; }
.lbf-escolhido > i { font-size: 18px; color: var(--p-blue); }
.lbf-escolhido .t { flex: 1; min-width: 0; font-size: .8rem; font-weight: 700; color: var(--p-ink); }
.lbf-escolhido .t small { display: block; font-size: .66rem; font-weight: 600; color: var(--p-faint); }
.lbf-anexo { display: flex; align-items: center; gap: 8px; font-size: .74rem; color: var(--p-text); }
.lbf-anexo i { font-size: 16px; color: var(--p-blue); }

/* ------------------------------------------------------------------ WorkLab e Radiologia */
.lbf-pdf-modal .mm-mbody { padding: 0 !important; overflow: hidden; display: flex; }
.lbf-pdf { flex: 1; width: 100%; height: 100%; min-height: 60vh; border: 0; background: #fff; display: block; }
.lbf-exames-resumo { max-width: 300px; }
.lbf-wl-data .mm-chip { margin-left: 6px; }
.lbf-paginacao { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--p-border-soft); }
.lbf-legado { border-style: dashed; }

/* ------------------------------------------------------------------ Impressão do caixa (página sem barra) */
.lbf-print-barra { position: fixed; top: 12px; right: 12px; z-index: 10; display: flex; gap: 8px; }
.lbf-print-barra button { height: 34px; padding: 0 14px; border-radius: 9px; border: 1px solid #cbd5e1; background: #fff; color: #0b1f3a;
    font: 700 .78rem 'Inter', system-ui, sans-serif; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.lbf-print-barra button.pri { background: linear-gradient(135deg, #1a4a9e, #2563eb); border-color: transparent; color: #fff; }
@media print {
    .lbf-print-barra { display: none !important; }
}
