:root{--green:#009739;--dark:#052b16;--soft:#eaf6ef;--border:#dfe8e2;--text:#101418;--muted:#69736d;--danger:#b00020}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f6f8f7;color:var(--text)}.screen{display:none;min-height:100vh;padding:18px}.screen.active{display:block}.brand-card{background:linear-gradient(145deg,#004d22,var(--green));color:#fff;border-radius:0 0 28px 28px;padding:34px 24px;margin:-18px -18px 20px;text-align:center}.brand-card h1{font-size:42px;line-height:.9;margin:8px 0}.brand-card span{color:#fff}.brand-icon{font-size:48px}.card,.action,.loc-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:0 2px 10px rgba(0,0,0,.05)}.login-card h2{margin-top:0}label{display:block;margin:12px 0 6px;font-weight:bold;color:#1b3a27}input,select,textarea{width:100%;font-size:18px;padding:14px;border:1px solid #b7c9bf;border-radius:10px;background:#fff}textarea{min-height:90px}.primary{background:var(--green);color:#fff;border:0;border-radius:10px;padding:15px;font-weight:bold;font-size:16px;width:100%}button{cursor:pointer;border:1px solid #9fc2ad;background:#fff;color:#006b2d;border-radius:10px;padding:12px;font-weight:bold}.topbar{background:var(--green);color:#fff;margin:-18px -18px 18px;padding:14px 12px;display:flex;align-items:center;justify-content:space-between}.topbar button{background:transparent;color:#fff;border:0}.topbar h2{font-size:18px;margin:0}.grid-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.action{text-align:left;min-height:105px}.action b{display:block;color:#006b2d;margin-bottom:8px}.action span{font-size:13px;color:var(--muted)}.hidden{display:none!important}.user-panel{background:var(--soft);border-radius:14px;padding:14px;margin-bottom:14px}.user-panel span{display:block;color:var(--muted)}.scanner-wrap{position:relative;height:55vh;background:#111;border-radius:18px;overflow:hidden}video{width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;inset:18%;border:4px solid #34c26b;border-radius:12px;box-shadow:0 0 0 9999px rgba(0,0,0,.35)}.center{text-align:center}.loc-card{text-align:center}.loc-card strong{display:block;font-size:72px;color:#007a2d}.loc-card span,.loc-card small{color:var(--muted);font-weight:bold}.loc-mini{background:var(--soft);padding:12px;border-radius:12px;margin-bottom:12px}.inline{display:flex;gap:8px}.inline input{flex:1}.inline button{white-space:nowrap}.produto-box{margin:12px 0;padding:14px;border-radius:12px;background:var(--soft);line-height:1.55}.muted{color:var(--muted)}.calc-box{display:flex;justify-content:space-between;background:#f2f5f3;padding:12px;border-radius:12px;margin:12px 0}.qty{display:flex;align-items:center;justify-content:center;gap:16px}.qty button{font-size:30px;width:62px;height:62px}.qty input{max-width:120px;text-align:center;font-size:32px;font-weight:bold}.msg{min-height:22px;margin-top:10px;color:var(--danger);font-weight:bold}.list{display:flex;flex-direction:column;gap:10px}.item{background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px;line-height:1.45}.item b{color:#006b2d}.bottom-actions{position:sticky;bottom:0;background:#f6f8f7;padding:12px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(min-width:700px){#app{max-width:460px;margin:auto;background:#fff;min-height:100vh}.screen{background:#fff}.bottom-actions{background:#fff}}

.loc-status{margin-bottom:14px}.grid-actions .action:nth-child(5){grid-column:1 / -1}.card h3{margin-top:0;color:#1b3a27}.produto-box small{color:var(--muted)}


/* Ajustes operacionais AppEstoque - leitura EAN mais intuitiva */
.topbar .btn-voltar{
  min-width:72px;
  text-align:left;
  padding-left:4px;
}

.topbar-spacer{
  display:block;
  min-width:72px;
}

.scan-big{
  width:100%;
  background:var(--green);
  color:#fff;
  border:0;
  border-radius:12px;
  padding:16px;
  font-size:17px;
  font-weight:bold;
  margin:6px 0 10px;
  box-shadow:0 2px 8px rgba(0,151,57,.22);
}

.scan-big:active{
  transform:scale(.99);
}
/* V1.2 - resumo da localização após leitura do QRCode */
#locProdutosResumo{
  margin:12px 0;
}

#locProdutosResumo h3{
  margin:0 0 8px;
  color:#1b3a27;
}

.loc-card small{
  display:block;
  margin-top:6px;
  font-size:18px;
  color:#006b2d;
}
.campo-obrigatorio{color:#b00020;font-weight:bold;margin-top:6px;margin-bottom:8px;font-size:14px;}
.campo-alerta{color:#8a5a00; background:#fff4d6;  border:1px solid #e2bd63; border-radius:10px; padding:10px; margin:8px 0 10px;  font-weight:bold; line-height:1.4;}





/* V1.05 - Layout compacto padrão AppEstoque
   Regras:
   - Métricas em uma linha: Cx / Unid / Lt
   - Valor com 8 posições visuais
   - Quadros com detalhe usam fundo diferenciado
*/
.hist-detalhe{
    display:block;
    font-size:12px;      /* menor */
    font-weight:bold;    /* negrito */
    margin-top:2px;
}

.metric-line{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:4px;
  align-items:center;
  margin-top:6px;
  font-size:14px;
  font-weight:bold;
  color:#101418;
  white-space:nowrap;
}
.metric-line span{
  display:flex;
  align-items:center;
  gap:2px;
  min-width:0;
  font-variant-numeric:tabular-nums;
}
.metric-line b{
  color:#006b2d;
  font-weight:bold;
}
.metric-line em{
  display:inline-block;
  width:8ch;
  text-align:right;
  font-style:normal;
  font-family:Consolas, 'Courier New', monospace;
  overflow:hidden;
}
.item.det,
.item.detalhe,
.card.det,
.card.detalhe{
  background:var(--soft);
  border-color:#9fc2ad;
  cursor:pointer;
}
.item.det:active,
.item.detalhe:active,
.card.det:active,
.card.detalhe:active{
  transform:scale(.995);
}
.item b{
  line-height:1.25;
}

/* V1.30 - Campos dinâmicos de movimentação */
.mov-extra{
  margin:10px 0 12px;
  padding:12px;
  border:1px solid #dfe8e2;
  border-radius:12px;
  background:#eaf6ef;
}
.mov-extra:empty{display:none;}
.mov-extra .hint{
  display:block;
  margin-top:6px;
  font-size:13px;
  color:#69736d;
  font-weight:bold;
}
.mov-extra .alerta{
  color:#b00020;
  font-weight:bold;
  margin-top:8px;
}
.mov-extra .inline button{
  min-width:115px;
}
