/* ===== Componente de Pesquisa de Produtos (PDV, Balcão, Compras) ===== */
.prod-tabela { font-size:.9rem; border-collapse:collapse; width:100%; margin-top:8px; }
.prod-tabela thead tr { background:#e65100; color:#fff; }
.prod-tabela thead th { padding:5px 8px; font-size:.72rem; font-weight:700; text-transform:uppercase; white-space:nowrap; }
.prod-tabela tbody td { padding:3px 8px; white-space:nowrap; overflow:hidden; max-width:320px; text-overflow:ellipsis; }
.prod-tabela tbody tr { cursor:pointer; border-bottom:1px solid #e0e0e0; transition:background .1s; }
.prod-tabela tbody tr:hover { background:#c8e6c9 !important; }
.prod-tabela tbody tr:focus { background:#a5d6a7 !important; outline:2px solid #388e3c; outline-offset:-2px; }
.prod-tabela tbody tr.prod-row-ativa { background:#dcedc8 !important; }
.prod-row-w { background:#fff; }
.prod-row-g { background:#f0f0f0; }
.prod-row-y { background:#ffe800; }

/* ===== Painel lateral de resumo do produto (Tarefa 5.2) ===== */
.prod-painel-card { background:#fff; border:1px solid #ccc; border-radius:6px; padding:12px; font-size:.85rem; }
.prod-painel-topo { display:flex; align-items:center; gap:10px; border-bottom:1px solid #e0e0e0; padding-bottom:8px; margin-bottom:8px; }
.prod-painel-foto { width:56px; height:56px; object-fit:cover; border-radius:6px; border:1px solid #ddd; flex:0 0 auto; }
.prod-painel-nome { font-weight:700; font-size:.95rem; line-height:1.2; }
.prod-painel-sec { margin-bottom:10px; }
.prod-painel-sec-tit { font-size:.7rem; font-weight:700; text-transform:uppercase; color:#666; letter-spacing:.03em; border-bottom:1px dashed #ddd; margin-bottom:4px; padding-bottom:2px; }
.prod-painel-linha { display:flex; justify-content:space-between; gap:8px; padding:2px 0; }
.prod-painel-lbl { color:#777; }
.prod-painel-val { font-weight:600; text-align:right; }
.prod-painel-vazio { padding:16px; color:#888; text-align:center; font-size:.85rem; }

/* Painel do cliente (Tarefa 5.4) — reaproveita .prod-painel-* acima */
.prod-painel-alertas { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:8px; }
.prod-painel-alertas .badge { font-size:.72rem; }
.prod-painel-info { padding:8px; background:#f5f5f5; border-radius:4px; color:#555; font-size:.8rem; text-align:center; }
.prod-painel-obs { padding:6px 8px; background:#fff8e1; border:1px solid #ffe082; border-radius:4px; font-size:.8rem; white-space:pre-wrap; }
.prod-painel-acoes { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; padding-top:8px; border-top:1px solid #e0e0e0; }
.prod-painel-acoes .btn { flex:1 1 auto; font-size:.75rem; }

/* ===== Contas a Receber dentro do painel do cliente (case 502) =====
   Lista operável das parcelas em aberto: seleção, total corrigido e as ações
   de receber / comprovante. O comportamento vive em Interface/js/cliente-painel.js;
   os juros vêm da régua única (Util/JurosRecebimento.php). */
.cli-cr { font-size:.78rem; }
.cli-cr-tbl { width:100%; border-collapse:collapse; }
.cli-cr-tbl th { font-size:.62rem; text-transform:uppercase; color:#8a97a4; font-weight:700;
                 text-align:left; padding:3px 4px; border-bottom:1px solid #e6ebf0; }
.cli-cr-tbl td { padding:5px 4px; border-bottom:1px solid #f1f4f7; vertical-align:top; line-height:1.25; }
.cli-cr-tbl td small { color:#9aa5b1; font-size:.64rem; }
.cli-cr-tbl .num { text-align:right; font-variant-numeric:tabular-nums; }

.cli-cr-linha { cursor:pointer; }
.cli-cr-linha:hover td { background:#fff8f0; }
.cli-cr-linha.sel td { background:#fff2e0; }
/* Marcador de seleção: quadradinho que preenche quando a linha entra na baixa. */
.cli-cr-chk { width:18px; }
.cli-cr-chk span { display:inline-block; width:12px; height:12px; border:1.5px solid #c3ccd6;
                   border-radius:3px; background:#fff; }
.cli-cr-linha.sel .cli-cr-chk span { background:#ff6a00; border-color:#ff6a00;
                                     box-shadow:inset 0 0 0 2px #fff; }

/* Faixa da régua de juros: cada estado muda o que se fala com o cliente. */
.cli-cr-linha.cr-juros  { border-left:3px solid #dc3545; }
.cli-cr-linha.cr-tol    { border-left:3px solid #e0a800; }
.cli-cr-linha.cr-carenc { border-left:3px solid #adb5bd; }
.cli-cr-linha.cr-hoje   { border-left:3px solid #28a745; }
.cli-cr-linha.cr-futuro { border-left:3px solid transparent; }
.cli-cr .cr-jr { color:#c00000; font-weight:700; }
.cli-cr .cr-jr-zero { color:#c9d0d8; }

.cli-cr-pe { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px;
             padding:6px 2px 0; margin-top:4px; border-top:1px solid #e6ebf0; font-size:.74rem; }
.cli-cr-tot b, .cli-cr-geral b { color:#1a2530; }
.cli-cr-acoes { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.cli-cr-btn { flex:1 1 auto; border:1px solid #d5dbe1; background:#fff; border-radius:4px;
              padding:5px 8px; font-size:.72rem; font-weight:600; color:#5a6470; cursor:pointer; }
.cli-cr-btn:hover { background:#fff3e6; border-color:#ff6a00; color:#ff6a00; }
.cli-cr-btn-rec { background:#28a745; border-color:#28a745; color:#fff; }
.cli-cr-btn-rec:hover { background:#218838; border-color:#218838; color:#fff; }
.cli-cr-btn:disabled { opacity:.5; cursor:not-allowed; }
.cli-cr-regra { margin-top:6px; padding:5px 7px; background:#fff8ec; border:1px solid #ffdfae;
                border-radius:4px; color:#7a6a52; font-size:.66rem; line-height:1.3; }

/* Diálogo de recebimento (injetado por cliente-painel.js) */
.cli-rec-ov { position:fixed; inset:0; z-index:20800; background:rgba(20,26,32,.55);
              display:none; align-items:center; justify-content:center; padding:16px; }
.cli-rec-ov.on { display:flex; }
.cli-rec-box { background:#fff; border-radius:8px; width:100%; max-width:440px; overflow:hidden;
               box-shadow:0 18px 50px rgba(0,0,0,.3); }
.cli-rec-hd { background:linear-gradient(135deg,#ff8a00,#ff6a00); color:#fff; padding:11px 16px;
              font-weight:800; font-size:.95rem; display:flex; align-items:center; gap:8px; }
.cli-rec-bd { padding:14px 16px; font-size:.84rem; }
.cli-rec-li { display:flex; justify-content:space-between; gap:10px; padding:3px 0;
              border-bottom:1px dotted #eef1f4; }
.cli-rec-li span:last-child { font-weight:700; font-variant-numeric:tabular-nums; }
.cli-rec-li.total span { font-size:1rem; color:#28a745; }
.cli-rec-formas { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 4px; }
.cli-rec-forma { border:1px solid #d5dbe1; border-radius:4px; padding:6px 12px; font-size:.76rem;
                 font-weight:700; color:#5a6470; cursor:pointer; }
.cli-rec-forma.on { background:#ff6a00; border-color:#ff6a00; color:#fff; }
.cli-rec-pe { display:flex; gap:8px; justify-content:flex-end; padding:10px 16px;
              background:#f8fafb; border-top:1px solid #e6ebf0; }
.cli-rec-pe .cli-cr-btn { flex:0 0 auto; }
.cli-rec-msg { margin-top:8px; font-size:.76rem; font-weight:600; min-height:1.1em; }
.cli-rec-msg.err { color:#c00000; }
.cli-rec-msg.ok { color:#0a7a0a; }

/* ===== Compras: histórico completo dentro do painel do cliente (case 505) =====
   Unifica à vista, crediário e venda por transferência (inclusive as que ainda
   não viraram nota). Comportamento em Interface/js/cliente-painel.js. */
.cli-cp { font-size:.78rem; }
.cli-cp-carregando, .cli-cp-vazio { padding:12px 4px; color:#9aa5b1; text-align:center; font-size:.76rem; }
.cli-cp-resumo { display:flex; flex-wrap:wrap; gap:4px 12px; padding:5px 6px; margin-bottom:5px;
                 background:#f6f8fa; border-radius:4px; font-size:.72rem; color:#6b7885; }
.cli-cp-resumo b { color:#1a2530; }

.cli-cp-tbl { width:100%; border-collapse:collapse; }
.cli-cp-tbl td { padding:5px 4px; border-bottom:1px solid #f1f4f7; vertical-align:top; line-height:1.25; }
.cli-cp-tbl small { color:#9aa5b1; font-size:.64rem; }
.cli-cp-tbl .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cli-cp-linha { cursor:pointer; }
.cli-cp-linha:hover td { background:#fff8f0; }
.cli-cp-ico { width:20px; font-size:.95rem; }
.cli-cp-ver { width:34px; text-align:right; }
.cli-cp-btn-ver { border:1px solid #d5dbe1; background:#fff; border-radius:3px; color:#6b7885;
                  font-size:.64rem; font-weight:700; padding:2px 6px; cursor:pointer; }
.cli-cp-btn-ver:hover { background:#fff3e6; border-color:#ff6a00; color:#ff6a00; }
/* Venda ainda não finalizada: o operador precisa ver que está em andamento. */
.cli-cp-linha.pendente td { background:#fffdf5; }
.cli-cp-sit td { padding:0 4px 5px 24px; border-bottom:1px solid #f1f4f7; }
.cli-cp-sit span { display:inline-block; background:#fff3cd; border:1px solid #ffe08a; color:#7a5a10;
                   border-radius:10px; padding:1px 7px; font-size:.62rem; font-weight:700; }

/* Diálogo de detalhes da compra (reaproveita .cli-rec-* do recebimento) */
.cli-cp-box { max-width:620px; }
.cli-cp-ov .cli-rec-bd { max-height:66vh; overflow:auto; }
.cli-cp-x { margin-left:auto; background:none; border:none; color:#fff; font-size:1.3rem;
            line-height:1; cursor:pointer; opacity:.85; padding:0 2px; }
.cli-cp-x:hover { opacity:1; }
.cli-cp-cab { margin-bottom:6px; }
.cli-cp-sec { margin:12px 0 5px; font-size:.66rem; font-weight:800; text-transform:uppercase;
              letter-spacing:.03em; color:#ff6a00; border-bottom:1px solid #ffe0c2; padding-bottom:2px; }
.cli-cp-itens { width:100%; border-collapse:collapse; font-size:.76rem; }
.cli-cp-itens th { text-align:left; font-size:.62rem; text-transform:uppercase; color:#8a97a4;
                   font-weight:700; padding:3px 4px; border-bottom:1px solid #e6ebf0; }
.cli-cp-itens td { padding:4px; border-bottom:1px solid #f4f7fa; vertical-align:top; line-height:1.25; }
.cli-cp-itens .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cli-cp-itens small { color:#9aa5b1; font-size:.64rem; }
.cli-cp-itens small.desc { color:#c00000; }
