/* SampaFlow · design system (rework 2026-07-27 — identidade "Convergência",
   versão clara — pedido do Luis: manter fundo branco, não o navy escuro do
   protótipo do Figma Make). Paleta própria derivada da marca (não é só o
   tema antigo com a cor trocada): base branco/cinza-azulado muito claro,
   texto quase-preto tom navy, acento cyan/teal escurecido o suficiente pra
   ler bem em cima de branco. Fontes: Barlow Condensed (display) + DM Sans
   (corpo) + JetBrains Mono (dados/labels) — ver memória do projeto pra
   origem exata dos valores (App.tsx do protótipo, `const colors`). */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;900&family=DM+Sans:wght@400;500&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  --bg:#F5F7FB; --side:#ffffff; --card:#ffffff; --line:#DCE3F0; --line-soft:#EBF0F8;
  --ink:#0B1220; --muted:#5B6478; --faint:#8891A6;
  --ac:#0090AD; --ac-dark:#00697F; --ac-bright:#00D4FF; --tint:rgba(0,212,255,.10);
  --warn:#854F0B; --warn-tint:#FAEEDA;
  --danger:#A32D2D; --danger-tint:#F7C1C1;
  --blue:#1D4ED8; --blue-tint:#E2EAFC;
  --font-display:'Barlow Condensed',system-ui,sans-serif;
  --font-sans:'DM Sans',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:'JetBrains Mono',"Cascadia Code",Consolas,Menlo,monospace;
}

/* Rework 2026-07-25 (pedido do Luis): status de saldo do fechamento
   confundia — "a receber"/"falta pagar" estava do ponto de vista da
   consultora, mas essas telas são do ponto de vista da Pinkse. Nomenclatura
   e cor padronizadas: azul = dinheiro que a Pinkse vai RECEBER da
   consultora (ela deve); âmbar = dinheiro que a Pinkse tem que PAGAR pra
   consultora (ela pagou a mais); verde = quitado, sem pendência nenhuma. */
.status-saldo{font-weight:600;padding:2px 10px;border-radius:99px;font-size:.8rem;display:inline-block;white-space:nowrap}
.status-saldo.receber{background:var(--blue-tint);color:var(--blue)}
.status-saldo.pagar{background:var(--warn-tint);color:var(--warn)}
.status-saldo.quitado{background:var(--tint);color:var(--ac-dark)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.6}
h1,h2,h3,.brand,.auth-brand{font-family:var(--font-display);font-weight:700;letter-spacing:.01em}
a{color:var(--ac);text-decoration:none} a:hover{text-decoration:underline}
input{font:inherit}
button{font:inherit;cursor:pointer}
code{font-family:var(--mono);font-size:.85em;background:var(--bg);border:1px solid var(--line-soft);padding:1px 6px;border-radius:6px}

/* ── layout autenticado (sidebar + conteúdo) ── */
.shell{display:flex;min-height:100vh}
.sidebar{width:210px;background:var(--side);border-right:1px solid var(--line);padding:16px 10px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;flex-shrink:0}
.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:1rem;padding:6px 10px;margin-bottom:14px;letter-spacing:-.01em}
.brand .brand-logo{height:22px;width:auto;display:block}
.brand small{font-weight:400;color:var(--faint);font-size:.72rem}
.item{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:8px;font-size:.86rem;color:var(--muted)}
.item .ic{width:17px;text-align:center;flex-shrink:0}
.item.active{background:var(--tint);color:var(--ac-dark);font-weight:600}
.item.soon{opacity:.55;cursor:not-allowed}
.item .onda{margin-left:auto;font-family:var(--mono);font-size:.6rem;color:var(--faint);background:var(--bg);border:1px solid var(--line-soft);border-radius:99px;padding:1px 7px;white-space:nowrap}
.sep{border-top:1px solid var(--line);margin:10px 6px}
.user{margin-top:auto;display:flex;align-items:center;gap:9px;padding:8px 11px;font-size:.78rem;color:var(--muted)}
.user .av{width:26px;height:26px;border-radius:50%;background:var(--tint);color:var(--ac-dark);display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;flex-shrink:0}
.user button{margin-left:auto;background:none;border:0;color:var(--faint);font-size:.72rem}
.user button:hover{color:var(--danger)}

.content{flex:1;min-width:0}
.pagehead{position:sticky;top:0;z-index:20;background:rgba(245,247,251,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:12px 26px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pagehead h1{margin:0;font-size:1.05rem;letter-spacing:-.01em}
.creator{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ac-dark);background:var(--tint);border-radius:99px;padding:3px 11px}
.spacer{flex:1}
.env{font-family:var(--mono);font-size:.66rem;color:var(--faint)}
.wrap{max-width:100%;padding:24px 26px 90px}
.wrap.estreito{max-width:900px;margin:0 auto}

/* ── páginas soltas (login / primeiro acesso) ── */
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:32px 30px}
.auth-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:1.15rem;margin-bottom:6px}
.auth-brand .brand-logo{height:28px;width:auto;display:block}
.auth-sub{color:var(--muted);font-size:.86rem;margin:0 0 26px}
.field{margin-bottom:16px}
.field label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:6px;font-weight:500}
.field input{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.field input:focus{outline:2px solid var(--ac);outline-offset:1px;border-color:var(--ac)}
.btn-primary{width:100%;background:var(--ac);color:#fff;border:0;border-radius:8px;padding:10px 14px;font-weight:600;font-size:.92rem;margin-top:6px}
.btn-primary:hover{background:var(--ac-dark)}
.btn-primary:disabled{opacity:.6;cursor:default}
.msg{font-size:.82rem;padding:9px 12px;border-radius:8px;margin-bottom:16px}
.msg.erro{background:var(--danger-tint);color:var(--danger)}
.msg.ok{background:var(--tint);color:var(--ac-dark)}
.hint{font-size:.76rem;color:var(--faint);margin-top:14px;text-align:center}

/* ── visão geral / progresso ── */
.overview{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:24px}
.overview .top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.overview h2{margin:0;font-size:.98rem}
.overview .pct{font-family:var(--mono);color:var(--ac);font-weight:700;font-size:1.2rem}
.overview .meta{font-family:var(--mono);font-size:.72rem;color:var(--faint)}
.bar{height:8px;background:var(--bg);border-radius:99px;overflow:hidden;margin:12px 0 16px}
.bar>i{display:block;height:100%;background:var(--ac-bright);border-radius:99px;transition:width .4s}
.fases{display:flex;gap:8px;flex-wrap:wrap}
.fchip{flex:1 1 74px;min-width:74px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 9px;cursor:pointer}
.fchip:hover{border-color:var(--ac)}
.fchip .l{font-family:var(--mono);font-size:.62rem;color:var(--faint);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fchip .v{font-family:var(--mono);font-size:.78rem;font-weight:700;margin-top:2px;color:var(--ink)}
.fchip .mini{height:3px;background:var(--line-soft);border-radius:99px;margin-top:5px;overflow:hidden}
.fchip .mini>i{display:block;height:100%;background:var(--ac-bright)}
.fchip.done{background:var(--tint);border-color:var(--ac)}
.fchip.done .v{color:var(--ac-dark)}

/* ── seções expansíveis ── */
details.sec{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:14px;overflow:hidden}
details.sec>summary{list-style:none;cursor:pointer;padding:14px 18px;display:flex;align-items:center;gap:12px;user-select:none}
details.sec>summary::-webkit-details-marker{display:none}
details.sec>summary h2{margin:0;font-size:.98rem;flex:1;letter-spacing:-.01em}
.secpct{font-family:var(--mono);font-size:.72rem;color:var(--muted);white-space:nowrap}
.secpct.done{color:var(--ac)}
.chev{color:var(--faint);transition:transform .2s;font-size:.7rem}
details[open] .chev{transform:rotate(90deg)}
.secbody{padding:2px 20px 18px;border-top:1px solid var(--line)}
.secbar{height:4px;background:var(--bg);border-radius:99px;overflow:hidden;margin:12px 0 6px}
.secbar>i{display:block;height:100%;background:var(--ac-bright)}

h1.doc{font-size:1.3rem;margin:8px 0 16px;letter-spacing:-.01em}
h3{font-size:.84rem;margin:18px 0 8px;color:var(--ac-dark);letter-spacing:.01em}
.quote{border-left:3px solid var(--ac);background:var(--tint);padding:10px 14px;border-radius:0 8px 8px 0;margin:10px 0;font-size:.88rem;color:var(--ac-dark)}
p{margin:8px 0;max-width:76ch}
.hr{border:0;border-top:1px solid var(--line);margin:14px 0}

ul.plain{padding-left:20px;margin:8px 0}
ul.plain li{margin-bottom:6px;color:var(--muted)}
ul.plain li::marker{color:var(--ac)}
ul.plain li strong{color:var(--ink)}

.check{display:flex;gap:10px;align-items:flex-start;padding:7px 10px;border-radius:8px;margin:2px 0;cursor:pointer}
.check:hover{background:var(--bg)}
.check input{margin-top:4px;accent-color:var(--ac);width:15px;height:15px;cursor:pointer;flex-shrink:0}
.check .txt{flex:1}
.check.done .txt{color:var(--faint);text-decoration:line-through;text-decoration-color:rgba(15,110,86,.45)}
.check .cont{display:block;font-size:.8rem;color:var(--faint);margin-top:2px}

.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;margin:12px 0;background:var(--card)}
table{border-collapse:collapse;width:100%;font-size:.85rem;min-width:520px}
th{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-align:left;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--side);white-space:nowrap}
td{padding:9px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top}
tr:last-child td{border-bottom:0}

.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--card);border:1px solid var(--ac);color:var(--ac-dark);font-family:var(--mono);font-size:.75rem;padding:8px 18px;border-radius:99px;opacity:0;transition:opacity .3s;pointer-events:none;box-shadow:0 4px 16px rgba(27,27,25,.08)}
.toast.show{opacity:1}

@media (max-width:760px){.sidebar{display:none}}

/* ── produtos: barra de ações, tabela, paginação, modal ── */
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.toolbar input[type="text"],.toolbar select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-size:.86rem}
.toolbar input[type="text"]{flex:1;min-width:180px}
.colunas-config{position:relative}
.menu-colunas{position:absolute;top:calc(100% + 6px);right:0;z-index:30;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(27,27,25,.14);padding:8px;min-width:190px;max-height:340px;overflow-y:auto}
.colunas-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:.84rem;cursor:pointer;white-space:nowrap}
.colunas-item:hover{background:var(--bg)}
.colunas-item input{margin:0}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;font-size:.86rem;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.btn:hover{border-color:var(--ac)}
.btn.primary{background:var(--ac);color:#fff;border-color:var(--ac)}
.btn.primary:hover{background:var(--ac-dark)}
.btn.small{padding:4px 10px;font-size:.76rem}
.data-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:.86rem}
.data-table th{background:var(--side);text-align:left;padding:9px 12px;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line)}
.data-table th.ordenavel{cursor:pointer;user-select:none;white-space:nowrap}
.data-table th.ordenavel:hover{color:var(--ac-dark)}
.data-table th.ordenavel .seta{color:var(--ac);font-size:.7rem}
.linha-busca-tabela td{padding:6px 10px;background:var(--side);border-bottom:1px solid var(--line)}
.linha-busca-tabela input{width:100%;border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:.84rem}
.data-table td{padding:9px 12px;border-bottom:1px solid var(--line-soft)}
.data-table tr:last-child td{border-bottom:0}
.data-table tr:hover td{background:var(--bg)}
.pill-status{font-size:.72rem;padding:2px 9px;border-radius:99px;background:var(--tint);color:var(--ac-dark)}
.pill-status.inativo{background:var(--danger-tint);color:var(--danger)}
.titulo-secao{margin:22px 0 8px;font-size:.92rem;color:var(--ink)}
.abas-estoque{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.abas-estoque .aba{background:none;border:none;padding:9px 14px;font-size:.86rem;color:var(--faint);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.abas-estoque .aba:hover{color:var(--ink)}
.abas-estoque .aba.ativa{color:var(--ac-dark);border-bottom-color:var(--ac)}
.pill-origem{font-family:var(--mono);font-size:.65rem;color:var(--faint)}
.mono-cel{font-family:var(--mono);font-size:.8rem;color:var(--muted)}

/* ── grupos de variação (ex: anéis por tamanho) ── */
.linha-grupo{background:var(--side)}
.linha-grupo:hover td{background:var(--tint)}
/* Coluna própria (2026-07-13) — antes o botão ficava dentro do texto do
   nome e passava batido. Ajustado no mesmo dia: o botão agora é a própria
   etiqueta "N tamanhos ▶" (não só a seta solta) — texto e seta formam uma
   coisa só, clicável em qualquer parte. A célula centraliza verticalmente
   (a tabela toda usa vertical-align:top por padrão, por causa da foto
   64px — sem isso o botão ficava "grudado" no topo da linha, feio). */
.celula-expandir{vertical-align:middle!important}
.btn-expandir{background:var(--tint);border:1.5px solid var(--ac);border-radius:8px;padding:6px 10px;font-size:.76rem;font-weight:700;color:var(--ac-dark);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:transform .12s,background .12s}
.btn-expandir:hover{background:var(--ac);color:#fff;transform:scale(1.03)}
.seta-expandir{font-size:.68rem}
.aviso-divergencia{cursor:help}
.linha-variacoes td{padding:0;background:var(--bg)}
.tabela-variacoes{width:100%;border-collapse:collapse;font-size:.82rem}
.tabela-variacoes th{text-align:left;padding:6px 12px 6px 46px;font-size:.64rem;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line-soft)}
.tabela-variacoes td{padding:7px 12px 7px 46px;border-bottom:1px solid var(--line-soft)}
.tabela-variacoes tr:last-child td{border-bottom:0}
.tabela-variacoes tr:hover td{background:var(--card)}
.paginacao{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:16px;font-size:.82rem;color:var(--muted)}
.paginacao button{padding:5px 12px;border-radius:8px;border:1px solid var(--line);background:var(--card)}
.paginacao button:disabled{opacity:.4;cursor:default}
.overlay{position:fixed;inset:0;background:rgba(27,27,25,.35);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px;overflow-y:auto}
.modal{background:var(--card);border-radius:14px;padding:26px 28px;width:100%;max-width:420px;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 12px 40px rgba(27,27,25,.18);margin:auto}
.modal h2{margin:0 0 18px;font-size:1.05rem}
.modal .campo{margin-bottom:14px}
.modal .campo label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:5px;font-weight:500}
.modal .campo input,.modal .campo select{width:100%;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.modal-produto{max-width:480px}
/* Alguns labels (ex: "Estoque mínimo (avisa quando bater)") quebram em 2
   linhas enquanto o vizinho na mesma linha fica em 1 — sem reservar altura
   fixa, os dois inputs da linha nascem em alturas diferentes. min-height
   reserva sempre o espaço de 2 linhas, então o input começa no mesmo lugar
   não importa se o texto do label quebrou ou não. */
.modal .linha2 .campo label,.modal .linha3 .campo label{min-height:3.2em}
.modal .linha2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modal .linha3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.modal .linha3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px}
.modal .linha3 .campo{margin-bottom:0}
.campo-somente-leitura{background:var(--tint)!important;color:var(--ac-dark)!important;font-weight:700;cursor:default}
.modal .acoes{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
.precos-tabelas{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:14px}
.margem-box{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:var(--bg);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.margem-item{text-align:center}
.margem-valor{font-size:1.3rem;font-weight:700;color:var(--ac-dark);font-family:var(--mono)}
.margem-label{font-size:.72rem;font-weight:600;color:var(--ink);margin-top:2px}
.margem-explicacao{font-size:.68rem;color:var(--faint);margin-top:2px;line-height:1.3}

.vazio{text-align:center;padding:50px 20px;color:var(--muted)}
.vazio .grande{font-size:2rem;margin-bottom:10px}

/* ── busca global ── */
.busca-global{position:relative;width:260px}
.busca-global input{width:100%;padding:6px 11px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-size:.82rem}
.busca-global input:focus{outline:2px solid var(--ac);outline-offset:1px;border-color:var(--ac)}
#busca-global-resultados{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(27,27,25,.12);max-height:320px;overflow-y:auto;z-index:60}
.bg-item{display:flex;align-items:center;gap:9px;padding:9px 12px;cursor:pointer;font-size:.84rem}
.bg-item:hover{background:var(--bg)}
.bg-item-sem-estoque{cursor:not-allowed;opacity:.6}
.bg-item-sem-estoque:hover{background:none}
.bg-item-sem-estoque .bg-sub{color:#b3261e;font-weight:600}
.bg-item-cadastrar{border-top:1px solid var(--line)}
.bg-item-cadastrar .bg-tit{color:var(--ac-dark);font-weight:600}
.bg-ic{font-size:1rem}
.bg-tit{flex:1;color:var(--ink)}
.bg-sub{color:var(--faint);font-size:.76rem}
.bg-vazio{padding:14px;text-align:center;color:var(--faint);font-size:.82rem}

/* ── Onda 2: Estoque / Entrada de Compra ── */
#resultado-busca-item{position:relative;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(27,27,25,.12);max-height:240px;overflow-y:auto;margin-top:4px}
.linha-busca-item{display:flex;gap:6px;align-items:center}
.linha-busca-item input{flex:1;min-width:0}
.btn-mic{flex-shrink:0;width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--card);font-size:.9rem;padding:0;cursor:pointer}
.btn-mic:hover{border-color:var(--ac);background:var(--tint)}
.btn-mic:disabled{opacity:.7;cursor:default}

.acoes-produto-novo{display:flex;gap:8px;margin-top:8px}
.form-produto-novo-inline{margin-top:10px;padding:12px;border:1px dashed var(--line);border-radius:10px;background:var(--bg)}
.form-produto-novo-inline .linha2{margin-top:8px}
.tag-novo{display:inline-block;font-size:.68rem;font-weight:600;color:var(--ac);background:var(--tint);border-radius:5px;padding:1px 6px;margin-left:4px;vertical-align:middle}
.dica-preco{font-size:.7rem;color:var(--faint);margin-top:2px}
.painel-banho{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--tint)}
.linha-preco-banho{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:.84rem}
.linha-preco-banho span:first-child{flex:1;color:var(--ink)}
.linha-preco-banho input{width:80px}

.modal-entrada{max-width:720px}
.dica-ditado{font-size:.72rem;color:var(--faint);margin-top:6px;line-height:1.4}

.linha-avulso-pendente{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
.linha-avulso-pendente:first-child{margin-top:0;padding-top:0;border-top:none}
.linha-avulso-cabecalho{display:flex;align-items:center;justify-content:flex-start;gap:14px;flex-wrap:wrap}
.avulso-info{font-size:.86rem;font-weight:500}
.avulso-checkbox-incluir{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--faint);white-space:nowrap;cursor:pointer;flex-shrink:0}
.avulso-checkbox-incluir input{margin:0}
.btn-expandir-avulso{background:none;border:none;padding:2px 0 2px 26px;font-size:.74rem;color:var(--ac-dark);cursor:pointer}
.btn-expandir-avulso:hover{text-decoration:underline}
.detalhe-avulso-itens{margin:4px 0 4px 26px;padding:6px 10px;border-radius:8px;background:var(--card)}
.detalhe-avulso-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:.8rem}
.detalhe-avulso-item:not(:last-child){border-bottom:1px solid var(--line)}
.detalhe-avulso-nome{flex:1}
.thumb-mini{width:42px;height:42px;border-radius:7px;object-fit:cover;background:var(--bg);flex-shrink:0}
.thumb-mini.thumb-vazio{display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--faint)}
.dica-ditado em{color:var(--ink);font-style:normal}
#itens-entrada-body .linha-categoria-grupo td{background:var(--tint);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.02em;color:var(--faint);padding:5px 10px}
#tabela-itens-entrada select{width:100%;min-width:100px}
.resumo-entrada-aviso{font-size:.84rem;color:var(--faint);margin-bottom:12px;padding:8px 10px;background:var(--tint);border-radius:8px}
.resumo-fornecedor{margin-bottom:16px}
.resumo-fornecedor h3{margin:0 0 6px;font-size:.92rem}
.resumo-categoria{margin-bottom:8px;padding-left:10px;border-left:2px solid var(--line)}
.resumo-categoria-titulo{font-size:.8rem;font-weight:600;color:var(--ink)}
.resumo-contagem{font-weight:400;color:var(--faint);margin-left:6px}
.resumo-itens-lista{margin:4px 0 0;padding-left:18px;font-size:.82rem;color:var(--ink)}
.resumo-itens-lista li{margin-bottom:2px}

#acerto-bipagem-input{font-size:1.1rem;padding:10px 12px}
.bipagem-feedback{display:flex;align-items:center;gap:12px;margin:10px 0;padding:10px 12px;border-radius:8px;font-size:.86rem}
.bipagem-feedback-ok{background:var(--tint);border:1px solid var(--ac-dark)}
.bipagem-feedback-erro{background:#fdecea;color:#b3261e;border:1px solid #f2a49c}
.thumb-bipagem{width:64px;height:64px;border-radius:8px;object-fit:cover;background:var(--bg);flex-shrink:0}
.thumb-bipagem.thumb-vazio{display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--faint)}
.thumb-conferencia{width:44px;height:44px;border-radius:7px;object-fit:cover;background:var(--bg);flex-shrink:0}
.thumb-conferencia.thumb-vazio{display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--faint)}
.bipagem-feedback-specs{font-weight:600;color:var(--ac-dark);margin:2px 0}
.linha-bipagem-completa{opacity:.55}
.linha-bipagem-completa td:nth-child(2){text-decoration:line-through}

.linha-lancamento{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:center;margin-top:6px}
.linha-negociacao{grid-template-columns:1fr 70px 1.4fr auto}

/* ── fotos de produto ── */
.thumb{width:64px;height:64px;border-radius:8px;object-fit:cover;background:var(--bg);display:block;cursor:zoom-in}
.thumb-vazio{display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--faint);border:1px dashed var(--line);cursor:default}
.fotos-preview{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.fotos-preview img{width:64px;height:64px;border-radius:8px;object-fit:cover;border:1px solid var(--line);cursor:zoom-in}
.foto-grande{max-width:min(90vw,700px);max-height:88vh;border-radius:12px;object-fit:contain;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.galeria{position:relative;display:flex;align-items:center;justify-content:center}
.galeria-seta{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.galeria-seta:hover{background:rgba(0,0,0,.75)}
.galeria-seta.esquerda{left:-14px}
.galeria-seta.direita{right:-14px}
.galeria-contador{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);color:#fff;font-family:var(--mono);font-size:.72rem;padding:3px 12px;border-radius:99px}
