:root { --verde:#0F6E56; --verde-esc:#0a5744; --bg:#f4f1ea; --card:#fff; --txt:#1c1c1c; --soft:#6b6b6b; --linha:#e4dfd3; --aviso:#b45309; --erro:#b91c1c; --ok:#15803d; }
* { box-sizing:border-box; }
html,body { margin:0; background:var(--bg); color:var(--txt); font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; -webkit-text-size-adjust:100%; }
header.topo { background:var(--verde); color:#fff; padding:max(10px,env(safe-area-inset-top)) 16px 10px; display:flex; align-items:center; gap:12px; position:sticky; top:0; z-index:5; }
header.topo img { width:42px; height:42px; border-radius:50%; background:#fff; }
header.topo h1 { font-size:17px; margin:0; line-height:1.2; flex:1; }
header.topo small { display:block; font-weight:400; opacity:.85; font-size:12px; }
header.topo a, header.topo button { background:rgba(255,255,255,.18); color:#fff; border:0; border-radius:8px; padding:8px 12px; font-size:14px; text-decoration:none; }
main { max-width:720px; margin:0 auto; padding:14px 16px 60px; }
.card { background:var(--card); border:1px solid var(--linha); border-radius:14px; padding:14px; margin-bottom:12px; }
.card h2 { margin:0 0 6px; font-size:18px; }
label { font-size:14px; color:var(--soft); display:block; margin:12px 0 4px; }
input, select, textarea { width:100%; font-size:17px; padding:12px; border:1px solid #cfc9bb; border-radius:10px; background:#fff; color:var(--txt); }
button.grande { width:100%; background:var(--verde); color:#fff; border:0; border-radius:14px; padding:16px; font-size:18px; font-weight:600; }
button.grande:disabled { opacity:.5; }
button.sec { background:#fff; color:var(--verde); border:2px solid var(--verde); border-radius:12px; padding:10px 14px; font-size:15px; font-weight:600; }
.abas { display:flex; gap:8px; margin-bottom:12px; }
.abas button { flex:1; background:#fff; color:var(--verde); border:2px solid var(--verde); border-radius:12px; padding:10px 6px; font-size:15px; font-weight:600; }
.abas button.on { background:var(--verde); color:#fff; }
.lista-prod { display:flex; flex-direction:column; gap:6px; margin-top:6px; }
button.prod { text-align:left; background:#fff; border:1px solid var(--linha); border-radius:10px; padding:10px 12px; font-size:16px; }
button.prod small { display:block; color:var(--soft); font-size:13px; margin-top:2px; }
.escolhido { margin-top:8px; padding:10px 12px; background:#ecfdf5; border-radius:10px; font-weight:600; }
.vazio-mini { color:var(--soft); font-size:14px; padding:6px 2px; }
.dupla { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.erro { color:var(--erro); margin:10px 0; }
.aviso { padding:12px 14px; border-radius:12px; margin-bottom:12px; font-size:15px; }
.aviso.ok { background:#dcfce7; color:#14532d; }
.aviso.erro { background:#fee2e2; color:#7f1d1d; }
.meta { color:var(--soft); font-size:14px; margin-top:4px; }
.chk { display:flex; gap:10px; align-items:flex-start; margin-top:12px; font-size:15px; color:var(--txt); }
.chk input { width:22px; height:22px; margin-top:2px; flex:none; }
.vazio { text-align:center; color:var(--soft); padding:40px 10px; }

/* cards de produto com foto (seletor) */
.grade-prod { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:10px; margin-top:10px; }
.pcard { border:2px solid var(--linha); background:#fff; border-radius:12px; padding:0; overflow:hidden; text-align:left; cursor:pointer; font:inherit; display:flex; flex-direction:column; }
.pcard.sel { border-color:var(--verde); box-shadow:0 0 0 1px var(--verde); }
.pcard .pth { height:84px; background:#f4f1ea center/cover no-repeat; }
.pcard b { font-size:14px; padding:6px 8px 0; line-height:1.2; }
.pcard small { font-size:12px; color:var(--soft); padding:2px 8px 8px; }
/* computador: página larga, duas colunas (produtos à esquerda, formulário à direita), letras maiores */
@media (min-width:1000px) {
  main { max-width:1640px; }
  .duas { display:grid; grid-template-columns:minmax(400px,480px) 1fr; gap:18px; align-items:start; }
  .duas .card { margin-bottom:0; }
  .grade-prod { grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
  .pcard .pth { height:100px; } .pcard b { font-size:15px; } .pcard small { font-size:13px; }
  .abas { max-width:720px; }
  .card { padding:18px; } label { font-size:15px; } .meta { font-size:15px; }
}

/* formulário de lançamento (esquerda) */
.chip-prod { display:flex; gap:12px; align-items:center; padding:10px; border:2px solid var(--verde); background:#ecfdf5; border-radius:12px; min-height:84px; }
.chip-prod.vazio { border:2px dashed #cfc9bb; background:#fff; color:var(--soft); justify-content:center; font-size:15px; }
.chip-prod .th { width:64px; height:64px; border-radius:10px; background:#f4f1ea center/cover no-repeat; flex:none; }
.chip-prod b { font-size:17px; display:block; line-height:1.2; } .chip-prod small { color:var(--soft); font-size:13px; }
.rota { display:grid; grid-template-columns:1fr auto 1fr; gap:8px; align-items:end; }
.rota .seta { font-size:26px; color:var(--verde); padding-bottom:10px; font-weight:700; }
.passo { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--verde); margin:18px 0 2px; }
.passo:first-child { margin-top:0; }
.sem-saldo { margin-top:12px; padding:10px 12px; background:#fffbeb; border:1px solid #f3d98b; border-radius:10px; }
.sem-saldo .chk { margin-top:0; font-size:14px; }
@media (max-width:999px) { .col-prod { order:-1; } .rota { grid-template-columns:1fr; } .rota .seta { display:none; } }

.chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.chip { background:#fff; color:var(--verde); border:2px solid var(--verde); border-radius:99px; padding:6px 14px; font-size:14px; font-weight:600; cursor:pointer; }
.chip.on { background:var(--verde); color:#fff; }
.lista-itens { margin-top:12px; display:flex; flex-direction:column; gap:6px; }
.item-lista { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 12px; background:#ecfdf5; border-radius:10px; font-size:15px; }
.item-lista .x { background:none; border:0; color:var(--erro); font-size:18px; cursor:pointer; padding:2px 8px; }
button.sec.largo { width:100%; margin-top:12px; }
.pcard small.estq { color:var(--txt); font-weight:600; padding-bottom:0; }
.pcard small.estq + small { padding-top:0; }

/* topo (loja + abas) e formulário de lançamento ficam sempre na tela ao rolar a lista de produtos */
.barra-topo { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.barra-topo:empty { display:none; }
.barra-topo select { width:auto; min-width:220px; }
.barra-topo .abas { flex:1; margin:0; }
@media (min-width:1000px) {
  .barra-topo { position:sticky; top:var(--topo,78px); z-index:4; background:var(--bg); padding:8px 0; margin-bottom:6px; }
  .barra-topo .abas { max-width:760px; }
  .col-form { position:sticky; top:calc(var(--topo,78px) + var(--barra,0px) + 6px); max-height:calc(100vh - var(--topo,78px) - var(--barra,0px) - 14px); overflow:auto; }
}

.total-remessa { margin-top:10px; font-weight:700; color:var(--verde); font-size:16px; }
.total-remessa small { display:block; font-weight:400; color:var(--soft); font-size:13px; }
.remessa-linha { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:10px 0; border-top:1px solid var(--linha); }
.remessa-linha .th { width:48px; height:48px; border-radius:8px; background:#f4f1ea center/cover no-repeat; }
.remessa-linha .campos { display:grid; grid-template-columns:1fr 1fr; gap:8px; grid-column:2 / span 2; }
.remessa-linha .campos label { margin:0 0 2px; font-size:13px; }
.remessa-linha input[type=checkbox] { width:26px; height:26px; }
.cab-remessa { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; align-items:baseline; }

/* painel de lançamento compacto: cabe numa tela, sem barra de rolagem */
.qtd-linha { display:grid; grid-template-columns:minmax(220px,1.6fr) minmax(90px,1fr) auto; gap:8px; align-items:end; }
@media (max-width:640px) { .qtd-linha { grid-template-columns:1fr 1fr; } .qtd-linha > button { grid-column:1 / -1; } }
.qtd-linha button.sec { margin-top:0; white-space:nowrap; padding:11px 12px; font-size:15px; }
@media (min-width:1000px) {
  .col-form { padding:10px 14px; }
  .col-form .passo { margin:10px 0 2px; font-size:11px; }
  .col-form label { margin:6px 0 2px; font-size:13px; }
  .col-form input, .col-form select { font-size:16px; padding:8px 10px; border-radius:8px; }
  .col-form .chip-prod { min-height:56px; padding:6px 8px; }
  .col-form .chip-prod .th { width:44px; height:44px; }
  .col-form .chip-prod b { font-size:15px; }
  .col-form .meta { font-size:13px; margin-top:2px; }
  .col-form .sem-saldo { margin-top:8px; padding:6px 8px; }
  .col-form .sem-saldo .chk { font-size:13px; }
  .col-form .chk input { width:20px; height:20px; }
  .col-form button.grande { padding:12px; font-size:17px; border-radius:12px; }
  .col-form .lista-itens { max-height:120px; overflow:auto; margin-top:8px; }
  .col-form .item-lista { padding:5px 10px; font-size:14px; }
  .col-form .total-remessa { margin-top:6px; font-size:15px; }
}

/* busca e filtros de produto ficam sempre à vista ao rolar a lista */
@media (min-width:1000px) {
  .busca-fixa { position:sticky; top:calc(var(--topo,78px) + var(--barra,0px) + 4px); background:var(--card); z-index:3; padding:6px 0 8px; }
}

/* editar / criar item */
.pcard { position:relative; }
.pcard .edit { position:absolute; right:6px; top:6px; background:rgba(255,255,255,.92); border-radius:8px; padding:2px 8px; font-size:15px; color:var(--verde); box-shadow:0 1px 3px rgba(0,0,0,.25); }
.novo-item { margin-top:8px; padding:8px 14px; font-size:14px; }
.modal-fundo { position:fixed; inset:0; background:rgba(15,23,42,.55); display:flex; align-items:center; justify-content:center; padding:12px; z-index:60; }
.modal-ed { background:#fff; border-radius:16px; padding:18px; width:min(860px,100%); max-height:96vh; overflow:auto; }
.modal-ed h2 { margin:0 0 6px; }
.modal-ed textarea { width:100%; font-size:16px; padding:10px; border:1px solid #cfc9bb; border-radius:10px; font-family:inherit; }
.ed-grade { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.ed-foto { width:100%; aspect-ratio:1/1; max-height:260px; background:#f4f1ea center/contain no-repeat; border-radius:12px; border:1px dashed #cfc9bb; margin-bottom:6px; }
@media (max-width:700px) { .ed-grade { grid-template-columns:1fr; } }

/* pedidos */
.pedido-linha { display:grid; grid-template-columns:44px 1fr 78px 92px auto auto; gap:8px; align-items:center; padding:8px 0; border-top:1px solid var(--linha); }
.pedido-linha .th { width:44px; height:44px; border-radius:8px; background:#f4f1ea center/cover no-repeat; }
.pedido-linha.amarelo { background:#fffbeb; border-radius:8px; padding-left:6px; padding-right:6px; }
.pedido-linha input[type=text], .pedido-linha select { padding:6px 8px; font-size:15px; }
.pl-prod { display:flex; gap:4px; align-items:center; font-size:12px; margin:0; color:var(--soft); }
.pl-prod input { width:18px; height:18px; }
.pl-acoes { display:flex; gap:6px; align-items:center; }
.pl-acoes .sec { padding:5px 10px; font-size:13px; }
@media (max-width:700px) { .pedido-linha { grid-template-columns:44px 1fr 70px 84px; } .pl-prod, .pl-acoes { grid-column:2 / span 3; } }

/* ---------- TOQUE: teclado numérico, quantidade com +/−, "Lançado ✓" e alvos grandes (máquinas touch das lojas) ---------- */
.qt-wrap { display:flex; flex-direction:column; gap:6px; }
.qt-linha { display:grid; grid-template-columns:56px minmax(96px,1fr) 56px; gap:6px; align-items:stretch; }
.qt-linha input { text-align:center; font-size:22px; font-weight:700; min-width:0; }
button.qt-b { background:#fff; color:var(--verde); border:2px solid var(--verde); border-radius:12px; font-weight:700; font-size:16px; padding:8px 12px; min-height:44px; }
button.qt-b.mm { font-size:28px; line-height:1; width:56px; padding:0; }
button.qt-b:active { background:var(--verde); color:#fff; }
.qt-rapidos { display:flex; gap:6px; } .qt-rapidos .qt-b { flex:1; }
.tk-caixa { background:#fff; border-radius:20px; padding:16px; width:min(380px,100%); }
.tk-tit { font-size:15px; color:var(--soft); font-weight:600; }
.tk-vis { font-size:44px; font-weight:800; text-align:right; padding:8px 12px; margin:6px 0 10px; background:#f4f1ea; border-radius:12px; min-height:68px; overflow:hidden; }
.tk-grade { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
button.tk { font-size:30px; font-weight:700; padding:0; min-height:68px; border-radius:14px; border:2px solid var(--linha); background:#fff; color:var(--txt); }
button.tk:active { background:var(--verde); color:#fff; border-color:var(--verde); }
.tk-rapido { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:8px 0; }
button.tk.tk-r { font-size:22px; min-height:54px; color:var(--verde); border-color:var(--verde); }
.tk-acoes { display:grid; grid-template-columns:1fr 2fr; gap:8px; margin-top:6px; }
.tk-acoes .sec, .tk-acoes .grande { min-height:60px; font-size:20px; }
.lc-caixa { background:#fff; border-radius:24px; padding:26px 22px; width:min(460px,100%); text-align:center; }
.lc-ok { width:96px; height:96px; line-height:96px; margin:0 auto 10px; border-radius:50%; background:#dcfce7; color:#15803d; font-size:56px; font-weight:800; }
.lc-tit { font-size:28px; font-weight:800; color:var(--verde-esc); }
.lc-det { font-size:18px; color:var(--txt); margin:10px 0 16px; line-height:1.35; }
.lc-caixa .lc-d { width:100%; min-height:60px; font-size:20px; margin-bottom:10px; border-color:#b45309; color:#b45309; }
.lc-caixa .grande { min-height:60px; font-size:22px; }
/* aparelho de toque: tudo maior e mais espaçado */
@media (pointer:coarse) {
  header.topo a, header.topo button { padding:12px 18px; font-size:17px; min-height:48px; display:inline-flex; align-items:center; }
  header.topo h1 { font-size:20px; }
  input, select, textarea { font-size:20px; padding:14px; }
  button.grande { padding:20px; font-size:21px; border-radius:16px; min-height:64px; }
  button.sec { padding:14px 18px; font-size:18px; min-height:52px; }
  .abas button { padding:16px 8px; font-size:18px; min-height:56px; }
  .chip { padding:12px 20px; font-size:17px; min-height:48px; }
  .grade-prod { grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; }
  .pcard .pth { height:110px; } .pcard b { font-size:16px; } .pcard small { font-size:14px; }
  .item-lista { padding:12px 14px; font-size:17px; } .item-lista .x { font-size:26px; padding:6px 14px; }
  label { font-size:16px; }
}

/* palavra PORÇÃO em destaque nos cartões de produto */
.pcard .tag-porcao { align-self:flex-start; margin:7px 0 0 8px; background:#b45309; color:#fff; font-size:11px; font-weight:800; letter-spacing:.07em; padding:2px 7px; border-radius:6px; }
.pcard .tag-porcao + b { padding-top:3px; }

/* PORÇÃO = verde, RECHEIO = vermelho */
.pcard .tags-tipo { display:flex; gap:4px; flex-wrap:wrap; margin:7px 0 0 8px; }
.pcard .tag-porcao, .pcard .tag-recheio { margin:0; align-self:auto; color:#fff; font-size:11px; font-weight:800; letter-spacing:.07em; padding:2px 7px; border-radius:6px; }
.pcard .tag-porcao { background:#15803d; }
.pcard .tag-recheio { background:#dc2626; }
.pcard .tags-tipo + b { padding-top:3px; }
.pcard.c-porcao { border-color:#86c99b; }
.pcard.c-recheio { border-color:#f0a0a0; }
.pcard.c-porcao.sel, .pcard.c-recheio.sel { border-color:var(--verde); }
