/* =====================================================================
   Preço Fixo em Lote — identidade Riberfoods
   Verde #0C5230 e laranja #FF6600, extraídos do logo.
   ===================================================================== */
:root{
  /* marca */
  --verde:#0C5230;  --verde-esc:#083A22;  --verde-cla:#177346;
  --verde-lav:#EAF2ED;  --verde-borda:#CBDFD3;
  --laranja:#FF6600; --laranja-esc:#E25A00; --laranja-lav:#FFF1E6;

  /* superfícies */
  --bg:#F2F5F2;  --panel:#FFFFFF;  --panel2:#F7F9F7;  --chip:#EFF3F0;
  --line:#DCE4DE;  --line-forte:#C4D2C9;

  /* texto */
  --txt:#16221B;  --dim:#5C6B62;  --dim2:#8A998F;

  /* semântica (usada inline pelo app.js) */
  --acc:#0C5230;  --acc-d:#083A22;
  --ok:#157F3D;   --warn:#B45309;  --err:#C62828;
  --ok-lav:#E7F5EC; --warn-lav:#FDF3E3; --err-lav:#FCEBEA;

  --sombra:0 1px 2px rgba(12,82,48,.05), 0 4px 14px rgba(12,82,48,.06);
  --raio:12px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);
  font:14.5px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  padding-bottom:86px;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}
button{font:inherit;cursor:pointer;border:none}
code{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:.9em;
  background:var(--chip);padding:1px 5px;border-radius:5px;color:var(--verde)}

input,select{font:inherit;background:#fff;border:1.5px solid var(--line);
  color:var(--txt);border-radius:9px;padding:9px 11px;outline:none;width:100%;
  transition:border-color .12s, box-shadow .12s}
input:hover,select:hover{border-color:var(--line-forte)}
input:focus,select:focus{border-color:var(--verde);box-shadow:0 0 0 3px rgba(12,82,48,.10)}
input::placeholder{color:var(--dim2)}
label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--dim);margin-bottom:6px;font-weight:700}

/* ---------------------------------------------------------- topbar */
.top{display:flex;align-items:center;gap:13px;padding:0 22px;height:60px;
  background:var(--verde);color:#fff;position:sticky;top:0;z-index:40;
  box-shadow:0 2px 10px rgba(8,58,34,.18)}
.top h1{font-size:15.5px;color:#fff}
.marca{width:34px;height:34px;border-radius:50%;background:#fff;flex:none;
  display:flex;align-items:center;justify-content:center;padding:4px;
  box-shadow:0 2px 6px rgba(0,0,0,.15)}
.marca img{width:100%;height:100%;object-fit:contain;display:block}
.lote{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);
  border-radius:7px;padding:4px 10px;font-size:12px;color:#EAF2ED;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.pill{font-size:11px;font-weight:700;padding:4px 11px;border-radius:20px;
  background:var(--laranja);color:#fff;letter-spacing:.02em;white-space:nowrap}
/* estado da conexão, legível sobre o verde da topbar */
.lote.ligado,.lote.desligado{display:inline-flex;align-items:center;gap:7px}
.lote.ligado::before,.lote.desligado::before{content:"";width:7px;height:7px;
  border-radius:50%;flex:none}
.lote.ligado{color:#BDECCB}   .lote.ligado::before{background:#5FD98A;
  box-shadow:0 0 0 3px rgba(95,217,138,.22)}
.lote.desligado{color:#FFC9C4;background:rgba(198,40,40,.28);
  border-color:rgba(255,201,196,.45)}
.lote.desligado::before{background:#FF8A80}
.spacer{flex:1}
.ghost{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.26);
  color:#fff;padding:8px 14px;border-radius:9px;font-weight:600;font-size:13px;
  transition:background .12s}
.ghost:hover{background:rgba(255,255,255,.22)}
.ghost:disabled{opacity:.4;cursor:not-allowed}

/* ---------------------------------------------------------- layout */
.wrap{max-width:1560px;margin:0 auto;padding:20px 22px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--raio);
  margin-bottom:18px;box-shadow:var(--sombra);overflow:hidden}
.card>header{padding:13px 17px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:11px;background:var(--panel2)}
.card>header h2{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;
  color:var(--verde);font-weight:800}
.card .body{padding:17px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
@media(max-width:1180px){.cols{grid-template-columns:1fr}}

.formgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:13px}
.formgrid .c2{grid-column:span 2}
.formgrid .c3{grid-column:span 3}
@media(max-width:900px){.formgrid{grid-template-columns:repeat(2,1fr)}
  .formgrid .c2,.formgrid .c3{grid-column:span 2}}

/* ----------------------------------------------------------- flags */
.flags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;
  padding-top:16px;border-top:1px solid var(--line)}
.flag{display:flex;align-items:center;gap:8px;background:#fff;
  border:1.5px solid var(--line);border-radius:9px;padding:7px 12px;font-size:12.5px;
  color:var(--dim);cursor:pointer;user-select:none;font-weight:600;
  transition:all .12s}
.flag:hover{border-color:var(--line-forte);color:var(--txt)}
.flag input{width:auto;margin:0;accent-color:var(--laranja);cursor:pointer}
.flag.on{border-color:var(--laranja);color:var(--laranja-esc);background:var(--laranja-lav)}

/* ------------------------------------------------------- dimensões */
.dim{border-bottom:1px solid var(--line)}
.dim:last-child{border-bottom:none}
.dimhead{display:flex;align-items:center;gap:10px;padding:12px 17px;cursor:pointer;
  transition:background .1s}
.dimhead:hover{background:var(--verde-lav)}
.caret{color:var(--dim2);font-size:9px;width:11px;transition:transform .15s}
.dim.open .caret{transform:rotate(90deg);color:var(--verde)}
.dimname{font-weight:700;font-size:13.5px}
.dimcol{font-size:10.5px;color:var(--dim2);font-family:ui-monospace,Menlo,monospace;
  letter-spacing:.02em}
.badge{margin-left:auto;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;
  background:var(--chip);color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap}
.badge.has{background:var(--verde);color:#fff}
.dimbody{display:none;padding:0 17px 15px 38px}
.dim.open .dimbody{display:block}

.opts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.opt{background:#fff;border:1.5px solid var(--line);border-radius:8px;
  padding:6px 11px;font-size:12.5px;color:var(--dim);font-weight:600}
.opt:hover{border-color:var(--verde);color:var(--verde);background:var(--verde-lav)}
.opt.sel{background:var(--verde);border-color:var(--verde);color:#fff}

.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.chip{display:inline-flex;align-items:center;gap:8px;background:var(--verde-lav);
  border:1.5px solid var(--verde-borda);border-radius:20px;
  padding:5px 7px 5px 12px;font-size:12.5px;color:var(--verde)}
.chip b{font-weight:800;font-variant-numeric:tabular-nums}
.chip span{color:var(--dim);font-weight:500}
.chip button{background:none;color:var(--dim2);font-size:16px;line-height:1;
  padding:0 5px;border-radius:50%;transition:color .1s}
.chip button:hover{color:var(--err)}

.empty{font-size:12.5px;color:var(--dim2);margin-top:10px;line-height:1.6}
.curinga{color:var(--laranja-esc);font-weight:700}

/* --------------------------------------------------------- tabelas */
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;
  color:var(--dim);font-weight:800;padding:10px 12px;border-bottom:2px solid var(--line);
  white-space:nowrap;position:sticky;top:0;background:var(--panel2);z-index:2}
td{padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--verde-lav)}
.num{text-align:right;font-variant-numeric:tabular-nums;
  font-family:ui-monospace,Menlo,Consolas,monospace}
.nulo{color:var(--dim2);font-style:italic;font-size:12px}
td input{padding:6px 9px;width:104px;text-align:right;
  font-family:ui-monospace,Menlo,monospace;font-weight:700}
.scroll{max-height:440px;overflow:auto}

.st{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;
  padding:3px 10px;border-radius:20px;white-space:nowrap}
.st::before{content:"";width:7px;height:7px;border-radius:50%;flex:none}
.st.ok{color:var(--ok);background:var(--ok-lav)}      .st.ok::before{background:var(--ok)}
.st.w{color:var(--warn);background:var(--warn-lav)}   .st.w::before{background:var(--warn)}
.st.e{color:var(--err);background:var(--err-lav)}     .st.e::before{background:var(--err)}
tr.e{background:var(--err-lav)}  tr.e:hover{background:#F9DFDD}
tr.w{background:var(--warn-lav)} tr.w:hover{background:#FAEBD4}
.msg{color:var(--dim);font-size:12px;white-space:normal;min-width:280px;line-height:1.5}
.src{font-size:9.5px;color:var(--verde);background:var(--verde-lav);
  border:1px solid var(--verde-borda);border-radius:5px;padding:1px 5px;
  font-family:ui-monospace,Menlo,monospace;font-weight:700;letter-spacing:.03em}

.tabs{display:flex;gap:3px;margin-left:auto;background:var(--chip);padding:3px;
  border-radius:9px}
.tab{background:transparent;color:var(--dim);padding:6px 13px;border-radius:7px;
  font-size:12px;font-weight:700;transition:all .12s}
.tab:hover{color:var(--txt)}
.tab.on{background:#fff;color:var(--verde);box-shadow:0 1px 3px rgba(0,0,0,.09)}

/* --------------------------------------------------------- avisos */
.alert{display:flex;gap:11px;align-items:flex-start;margin:0 17px 15px;
  padding:12px 15px;border-radius:10px;font-size:12.5px;line-height:1.6}
.alert:first-of-type{margin-top:15px}
.alert.w{background:var(--warn-lav);border:1px solid #EFD9AE;color:#8A4A08}
.alert.i{background:var(--verde-lav);border:1px solid var(--verde-borda);color:#1C4C36}
.alert b{color:var(--txt)}

/* --------------------------------------------------------- rodapé */
.foot{position:fixed;bottom:0;left:0;right:0;background:#fff;
  border-top:1px solid var(--line);padding:13px 22px;display:flex;align-items:center;
  gap:18px;z-index:30;box-shadow:0 -2px 14px rgba(12,82,48,.07)}
.calc{font-size:13.5px;color:var(--dim);font-variant-numeric:tabular-nums}
.calc b{color:var(--txt);font-weight:800}
.calc .tot{color:var(--laranja);font-size:19px;font-weight:800;margin:0 3px}
.cnt{display:flex;gap:16px;font-size:12.5px;font-variant-numeric:tabular-nums;
  color:var(--dim);font-weight:600}
.cnt span{display:flex;align-items:center;gap:6px}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.foot .ghost{background:#fff;border:1.5px solid var(--line);color:var(--dim)}
.foot .ghost:hover{border-color:var(--verde);color:var(--verde);background:var(--verde-lav)}
.btn{background:var(--laranja);color:#fff;padding:11px 22px;border-radius:9px;
  font-weight:750;font-size:14px;box-shadow:0 2px 8px rgba(255,102,0,.28);
  transition:background .12s, box-shadow .12s}
.btn:hover{background:var(--laranja-esc);box-shadow:0 3px 12px rgba(255,102,0,.36)}
.btn:disabled{background:var(--chip);color:var(--dim2);cursor:not-allowed;box-shadow:none}
.note{font-size:11.5px;color:var(--dim2);padding:0 22px 24px;max-width:1560px;
  margin:0 auto;line-height:1.7}

/* ------------------------------------------------------ busca/lupa */
.busca{position:relative}
/* O .card recorta o que passa das bordas (overflow:hidden), o que e bom
   para as tabelas mas cortava a lista de resultados da busca, que abre
   por fora do cartao. Este cartao especifico nao recorta. */
.card.sem-recorte{overflow:visible}
.res{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:50;background:#fff;
  border:1.5px solid var(--verde);border-radius:10px;max-height:280px;overflow:auto;
  box-shadow:0 8px 28px rgba(12,82,48,.16)}
.res button{display:block;width:100%;text-align:left;background:none;color:var(--txt);
  padding:9px 12px;font-size:12.5px;border-bottom:1px solid var(--line)}
.res button:last-child{border-bottom:none}
.res button:hover{background:var(--verde-lav)}
.res .cod{color:var(--laranja-esc);font-family:ui-monospace,Menlo,monospace;
  margin-right:9px;font-weight:800}

/* ---------------------------------------------------------- toast */
.toast{position:fixed;bottom:100px;right:22px;z-index:60;background:#fff;
  border:1px solid var(--line);border-left:4px solid var(--verde);border-radius:10px;
  padding:13px 17px;font-size:13px;max-width:430px;line-height:1.55;
  box-shadow:0 10px 32px rgba(12,82,48,.20)}
.toast.err{border-left-color:var(--err)}
.toast.ok{border-left-color:var(--ok)}

.load{display:inline-block;width:13px;height:13px;border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;
  vertical-align:-2px}
.ghost .load,.foot .ghost .load{border-color:var(--line);border-top-color:var(--verde)}
@keyframes sp{to{transform:rotate(360deg)}}
.off{opacity:.5;pointer-events:none;filter:saturate(.4)}

/* ------------------------------------------------------ scrollbar */
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--panel2)}
::-webkit-scrollbar-thumb{background:var(--line-forte);border-radius:6px;
  border:3px solid var(--panel2)}
::-webkit-scrollbar-thumb:hover{background:var(--dim2)}

/* =====================================================================
   ASSISTENTE EM ETAPAS
   ===================================================================== */
body{padding-bottom:80px}

/* ---------------------------------------------------- trilha de etapas */
.stepper{display:flex;gap:0;background:#fff;border-bottom:1px solid var(--line);
  padding:0 22px;position:sticky;top:60px;z-index:35;overflow-x:auto;
  box-shadow:0 1px 6px rgba(12,82,48,.05)}
.step{display:flex;align-items:center;gap:11px;background:none;padding:15px 26px 13px;
  border-bottom:3px solid transparent;color:var(--dim2);white-space:nowrap;
  transition:color .15s,border-color .15s}
.step:hover{color:var(--dim)}
.step .num{width:26px;height:26px;border-radius:50%;background:var(--chip);
  color:var(--dim2);display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:800;flex:none;transition:all .15s}
.step .rot{font-size:13.5px;font-weight:700}
.step.feita{color:var(--verde)}
.step.feita .num{background:var(--verde-lav);color:var(--verde)}
.step.feita .num::after{content:"✓";font-size:13px}
.step.feita .num{font-size:0}
.step.atual{color:var(--verde);border-bottom-color:var(--laranja)}
.step.atual .num{background:var(--laranja);color:#fff;
  box-shadow:0 0 0 4px rgba(255,102,0,.16)}
@media(max-width:800px){.step .rot{display:none} .step{padding:14px 18px}}

/* ------------------------------------------------------------- palco */
.palco{max-width:1080px;margin:0 auto;padding:30px 22px 20px}
.etapa{display:none;animation:entra .22s ease}
.etapa.ativa{display:block}
@keyframes entra{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.etapa#etapa4{max-width:none}
body:has(#etapa4.ativa) .palco{max-width:1560px}

.titulo{font-size:25px;font-weight:750;color:var(--verde);margin-bottom:7px;
  letter-spacing:-.02em}
.apoio{font-size:14.5px;color:var(--dim);margin:0 0 22px}

.campo-grande label{font-size:12px}
.campo-grande input{font-size:17px;padding:13px 15px}
.campo-grande small{display:block;margin-top:8px;font-size:12px;color:var(--dim2)}
.linha2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.linha2{grid-template-columns:1fr}}

.atalhos{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.atalhos button{background:var(--chip);border:1.5px solid transparent;color:var(--dim);
  padding:6px 13px;border-radius:20px;font-size:12.5px;font-weight:700}
.atalhos button:hover{border-color:var(--verde);color:var(--verde);background:var(--verde-lav)}

/* -------------------------------------------------------- busca grande */
.busca-grande input{font-size:16px;padding:15px 17px}
.res .nada{padding:14px 15px;color:var(--dim2);font-size:13px;font-style:italic}
.res button.ja{opacity:.55;cursor:default}
.res button.ja:hover{background:none}
.ja-tag{float:right;font-size:10.5px;color:var(--ok);background:var(--ok-lav);
  padding:1px 7px;border-radius:20px;font-weight:700}

/* -------------------------------------------------------- vazio-estado */
.vazio-estado{text-align:center;padding:46px 20px;color:var(--dim2)}
.vazio-estado.dentro{padding:34px 20px}
.vazio-estado .ic{font-size:34px;margin-bottom:10px;opacity:.5}
.vazio-estado b{display:block;color:var(--dim);font-size:15px;margin-bottom:4px}
.vazio-estado span{font-size:13px}

/* -------------------------------------------------- etapa 3 · filtros */
.resumo-frase{display:flex;gap:14px;align-items:flex-start;background:var(--verde-lav);
  border:1px solid var(--verde-borda);border-radius:var(--raio);padding:16px 19px;
  margin-bottom:20px;font-size:14.5px;line-height:1.55;color:#1C4C36}
.resumo-frase .ic{font-size:21px;line-height:1.2}
.resumo-frase b{color:var(--verde)}

.filtros-grade{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:820px){.filtros-grade{grid-template-columns:1fr}}
.fcard{background:#fff;border:1.5px solid var(--line);border-radius:var(--raio);
  overflow:hidden;transition:border-color .15s,box-shadow .15s;align-self:start}
.fcard:hover{border-color:var(--line-forte)}
.fcard.tem{border-color:var(--verde);box-shadow:0 0 0 3px rgba(12,82,48,.07)}
.fcab{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 17px;cursor:pointer}
.fcab:hover{background:var(--verde-lav)}
.fnome{font-size:15px;font-weight:700}
.fcol{font-size:10.5px;color:var(--dim2);font-family:ui-monospace,Menlo,monospace;
  margin-top:3px;letter-spacing:.02em}
.fstat{font-size:12px;font-weight:700;color:var(--dim2);background:var(--chip);
  padding:4px 12px;border-radius:20px;white-space:nowrap}
.fcard.tem .fstat{background:var(--verde);color:#fff}
.fcorpo{display:none;padding:0 17px 16px}
.fcard.aberto .fcorpo{display:block}
.fcard.aberto .fcab{border-bottom:1px solid var(--line);margin-bottom:15px}

.mais{display:flex;align-items:center;gap:9px;margin:20px auto 6px;background:#fff;
  border:1.5px solid var(--line);color:var(--dim);padding:11px 22px;border-radius:24px;
  font-size:13.5px;font-weight:700}
.mais:hover{border-color:var(--verde);color:var(--verde)}
.mais .seta{transition:transform .18s}
.mais.aberto .seta{transform:rotate(180deg)}
#filtrosExtras{margin-top:14px}

/* ---------------------------------------------------- etapa 4 · placar */
.placar{display:flex;gap:13px;margin-bottom:20px;flex-wrap:wrap}
.peca{flex:1;min-width:130px;background:#fff;border:1.5px solid var(--line);
  border-radius:var(--raio);padding:15px 18px;display:flex;flex-direction:column;gap:2px}
.peca b{font-size:29px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.peca span{font-size:12.5px;color:var(--dim);font-weight:600}
.peca.ok{border-color:#A9DDBC;background:var(--ok-lav)}  .peca.ok b{color:var(--ok)}
.peca.w{border-color:#EFD9AE;background:var(--warn-lav)} .peca.w b{color:var(--warn)}
.peca.e{border-color:#F0C9C6;background:var(--err-lav)}  .peca.e b{color:var(--err)}
.peca.i b{color:var(--dim)}

/* ------------------------------------------------- opções avançadas */
.avancado{background:#fff;border:1.5px solid var(--line);border-radius:var(--raio);
  margin-top:18px;overflow:hidden}
.avancado>summary{padding:15px 19px;cursor:pointer;font-weight:700;font-size:14px;
  color:var(--dim);list-style:none;display:flex;align-items:center;gap:9px}
.avancado>summary::-webkit-details-marker{display:none}
.avancado>summary::before{content:"▸";color:var(--dim2);transition:transform .15s}
.avancado[open]>summary::before{transform:rotate(90deg)}
.avancado>summary:hover{background:var(--verde-lav);color:var(--verde)}
.avancado>summary span{font-weight:500;color:var(--dim2);font-size:12.5px}
.avancado .body{padding:19px;border-top:1px solid var(--line)}
.avancado .dica{font-size:12px;color:var(--dim2);margin:11px 0 0;line-height:1.6}
.avancado .alert{margin:14px 0 0}

/* -------------------------------------------------------- tabela extra */
td.forte{font-weight:700}
td.suave,.suave{color:var(--dim2)}
button.x{background:none;color:var(--dim2);font-size:19px;line-height:1;padding:0 6px;
  border-radius:6px}
button.x:hover{color:var(--err);background:var(--err-lav)}

/* ------------------------------------------------------------- rodapé */
.foot{gap:14px}
.foot .calc{flex:none}

/* ------------------------------- região derivada do cliente */
.chip .reg{font-style:normal;font-size:10.5px;font-weight:800;color:var(--verde);
  background:#fff;border:1px solid var(--verde-borda);border-radius:20px;
  padding:1px 8px;margin-left:2px}
.chip .reg.ruim{color:var(--err);border-color:#F0C9C6;background:var(--err-lav)}

.fcard.travado{border-color:var(--verde-borda);background:var(--verde-lav)}
.fcard.travado .fcab{cursor:default}
.fcard.travado .fcab:hover{background:none}
.cadeado{font-size:12px;opacity:.65;margin-left:3px}
.fstat.auto{background:#fff;color:var(--verde);border:1px solid var(--verde-borda)}
.explica{font-size:12.5px;color:#1C4C36;margin:0 0 13px;line-height:1.6}

.lista-reg{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.lista-reg li{display:flex;align-items:center;gap:9px;background:#fff;
  border:1px solid var(--verde-borda);border-radius:9px;padding:9px 12px;font-size:12.5px}
.lista-reg li.ruim{border-color:#F0C9C6;background:var(--err-lav)}
.lista-reg b{font-variant-numeric:tabular-nums;font-weight:800;color:var(--verde)}
.lista-reg span{color:var(--dim);flex:1;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.lista-reg em{font-style:normal;font-weight:800;color:var(--verde);white-space:nowrap}
.lista-reg li.ruim em{color:var(--err)}

/* select de região por cliente, quando a PCTABPRCLI aponta mais de uma */
.lista-reg .sel-reg{
  font:600 12px/1 var(--fonte, inherit); color:var(--verde-esc);
  background:#fff; border:1.5px solid var(--laranja); border-radius:8px;
  padding:5px 8px; cursor:pointer; margin-left:auto;
}
.lista-reg .sel-reg:focus{ outline:2px solid var(--laranja-lav); }


/* =====================================================================
   Modal "Meus lotes"
   ===================================================================== */
.modal-fundo{position:fixed;inset:0;z-index:80;background:rgba(8,58,34,.42);
  backdrop-filter:blur(2px);align-items:flex-start;justify-content:center;
  padding:60px 20px 30px}

.modal{background:var(--panel);border-radius:16px;width:min(1080px,100%);
  max-height:calc(100vh - 90px);display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 24px 70px rgba(8,58,34,.34);animation:sobe .16s ease-out}
@keyframes sobe{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}

.modal>header{display:flex;align-items:center;gap:16px;padding:16px 20px;
  background:var(--verde);color:#fff}
.modal>header h2{font-size:16px;font-weight:800;color:#fff}
.modal>header .sub{font-size:11.5px;color:rgba(255,255,255,.75)}
.modal>header input{flex:1;max-width:400px;margin-left:auto;background:rgba(255,255,255,.14);
  border:1.5px solid rgba(255,255,255,.28);color:#fff;border-radius:9px;
  padding:9px 13px;font-size:13px}
.modal>header input::placeholder{color:rgba(255,255,255,.6)}
.modal>header input:focus{background:rgba(255,255,255,.2);border-color:#fff;outline:none}
.modal>header .fechar{background:rgba(255,255,255,.14);color:#fff;border-radius:9px;
  width:34px;height:34px;font-size:15px;flex:none}
.modal>header .fechar:hover{background:rgba(255,255,255,.28)}

.modal-corpo{overflow:auto;padding:14px 16px 20px}

.lote-card{display:grid;grid-template-columns:78px 1fr auto;gap:16px;align-items:center;
  border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;margin-bottom:10px;
  cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s;background:#fff}
.lote-card:hover{border-color:var(--verde);box-shadow:0 6px 20px rgba(12,82,48,.13);
  transform:translateY(-1px)}
.lote-card .num{font:800 19px/1 ui-monospace,Menlo,monospace;color:var(--verde);
  text-align:center}
.lote-card .num small{display:block;font:700 9.5px/1.6 var(--fonte,inherit);
  color:var(--dim2);text-transform:uppercase;letter-spacing:.07em}
.lote-card .desc{font-size:14.5px;font-weight:700;color:var(--txt);margin-bottom:4px}
.lote-card .meta{font-size:12px;color:var(--dim2);display:flex;flex-wrap:wrap;gap:5px 14px}
.lote-card .direita{text-align:right;display:flex;flex-direction:column;gap:6px;
  align-items:flex-end}

.selo{font-size:10.5px;font-weight:800;padding:3px 10px;border-radius:20px;
  text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.selo.g{background:var(--ok-lav);color:var(--ok)}
.selo.a{background:var(--chip);color:var(--dim)}
.selo.v{background:var(--laranja-lav);color:var(--laranja-esc)}

.cps{font:12px/1.5 ui-monospace,Menlo,monospace;color:var(--verde);
  background:var(--verde-lav);border:1px solid var(--verde-borda);border-radius:8px;
  padding:5px 10px;max-width:330px;text-align:left;
  /* deixa quebrar em ate 3 linhas em vez de cortar com reticencias */
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  word-break:break-word}
.cps b{font-weight:800}
.copiar{background:none;color:var(--dim2);font-size:11px;text-decoration:underline;
  padding:0;font-weight:600}
.copiar:hover{color:var(--verde)}

.modal-vazio{text-align:center;padding:50px 20px;color:var(--dim2)}
.modal-vazio .ic{font-size:34px;opacity:.5;margin-bottom:10px}
