/* ==========================================================================
   Julinho no Portal RDA Distribuição — 3.1 (chat). Visual alinhado ao portal.css
   (vermelho #C8102E, grafite da sidebar #2d2d2d, cards brancos com sombra sobre
   fundo cinza, raio 10/6, Segoe UI, gaveta lateral como a do carrinho).
   Tudo com prefixo jvp- para não colidir com o CSS do Portal.
   ========================================================================== */
.jvp-abrir, .jvp-painel {
  --jvp-vermelho: var(--red, #C8102E); --jvp-vermelho-esc: var(--red-dark, #9e0c23); --jvp-vermelho-cl: var(--red-lite, #fff0f2);
  --jvp-grafite: var(--sidebar, #2d2d2d); --jvp-tinta: var(--g700, #333); --jvp-suave: var(--g500, #888); --jvp-suave2: var(--g600, #555);
  --jvp-linha: var(--g200, #eaeaea); --jvp-linha2: var(--g300, #d0d0d0); --jvp-cinza: var(--g100, #f5f5f5); --jvp-fundo2: var(--bg, #f0f0f0);
  --jvp-verde: var(--green, #2f9e44); --jvp-verde-cl: var(--grn-l, #ebfbee); --jvp-ambar: var(--orange, #e67700); --jvp-ambar-fundo: var(--org-l, #fff3cd);
  --jvp-azul: var(--blue, #1971c2); --jvp-azul-cl: var(--blu-l, #e7f5ff);
  --jvp-sh: var(--sh, 0 2px 8px rgba(0,0,0,.09)); --jvp-sh-lg: var(--sh-lg, 0 8px 32px rgba(0,0,0,.16));
  --jvp-r: var(--r, 10px); --jvp-rsm: var(--rsm, 6px);
  font-family: 'Segoe UI', system-ui, sans-serif; font-size: 13.5px; line-height: 1.45; color: var(--jvp-tinta); box-sizing: border-box;
}
.jvp-painel *, .jvp-painel *::before, .jvp-painel *::after { box-sizing: border-box; }
.jvp-painel [hidden], .jvp-abrir [hidden], .jvp-abrir[hidden], .jvp-fundo[hidden], .jvp-painel[hidden] { display: none !important; }
.jvp-oculto { position: absolute !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* ---------- Lançador: balão + avatar ---------- */
.jvp-abrir { position: fixed; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 175; display: flex; align-items: center; gap: 12px; }
.jvp-avatar-btn { position: relative; flex: 0 0 auto; width: 64px; height: 64px; padding: 0; border: 3px solid #fff; border-radius: 50%; background: var(--jvp-vermelho); cursor: pointer;
  box-shadow: 0 6px 20px rgba(200,16,46,.35), var(--jvp-sh); transition: transform .18s ease; }
.jvp-avatar-btn::after { content: ''; position: absolute; right: 1px; bottom: 3px; width: 13px; height: 13px; border-radius: 50%; background: var(--jvp-verde); border: 2px solid #fff; }
.jvp-avatar-btn:hover { transform: translateY(-2px) scale(1.04); }
.jvp-avatar-btn img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.jvp-balao { position: relative; display: flex; align-items: center; gap: 14px; max-width: 320px; background: #fff; border-radius: 28px;
  padding: 10px 30px 10px 12px; box-shadow: 0 4px 18px rgba(0,0,0,.14); cursor: pointer; animation: jvp-entra .35s ease-out; }
.jvp-balao:hover { box-shadow: 0 6px 22px rgba(0,0,0,.2); }
.jvp-balao-ico { position: relative; flex: 0 0 auto; width: 46px; height: 32px; border-radius: 8px; background: var(--jvp-linha); display: flex; align-items: center; justify-content: center; gap: 4px; }
.jvp-balao-ico::after { content: ''; position: absolute; left: 10px; bottom: -6px; border: 6px solid transparent; border-bottom: 0; border-top-color: var(--jvp-linha); }
.jvp-balao-ico i { width: 6px; height: 6px; border-radius: 50%; background: #fff; animation: jvp-pisca 1.4s infinite; }
.jvp-balao-ico i:nth-child(2) { animation-delay: .2s; } .jvp-balao-ico i:nth-child(3) { animation-delay: .4s; }
.jvp-balao-txt { font-size: 15px; color: var(--jvp-suave2); white-space: nowrap; }
.jvp-balao-x { position: absolute; top: 50%; right: 9px; margin-top: -10px; border: 0; background: none; color: #b0b0b0; font-size: 15px; line-height: 1; cursor: pointer; padding: 2px 3px; opacity: 0; transition: opacity .15s; }
.jvp-balao:hover .jvp-balao-x, .jvp-balao-x:focus-visible { opacity: 1; }
.jvp-balao-x:hover { color: var(--jvp-vermelho); }

/* ---------- Gaveta ---------- */
.jvp-fundo { position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 200; animation: jvp-aparece .2s ease-out; }
.jvp-painel { position: fixed; top: 0; right: 0; bottom: 0; width: 480px; max-width: 100vw; z-index: 201; background: var(--jvp-fundo2); display: flex; flex-direction: column;
  box-shadow: var(--jvp-sh-lg); animation: jvp-desliza .28s cubic-bezier(.2,.8,.2,1); transition: width .2s ease; }
.jvp-painel.jvp-largo { width: 760px; }
.jvp-topo { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: calc(10px + env(safe-area-inset-top, 0px)) 12px 10px 16px;
  background: var(--jvp-grafite); color: #fff; border-bottom: 3px solid var(--jvp-vermelho); }
.jvp-topo-id { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1 1 auto; }
.jvp-topo-nome { min-width: 0; overflow: hidden; }
.jvp-topo-foto { position: relative; flex: 0 0 auto; }
.jvp-topo-avatar { display: block; width: 44px; height: 44px; border-radius: 50%; border: 2px solid #fff; background: var(--jvp-vermelho); object-fit: cover; }
.jvp-online { position: absolute; right: -1px; bottom: 1px; width: 12px; height: 12px; border-radius: 50%; background: var(--jvp-verde); border: 2px solid var(--jvp-grafite); }
.jvp-topo strong { display: block; font-size: 16px; font-weight: 800; letter-spacing: .2px; line-height: 1.15; }
.jvp-topo-nome span { display: block; font-size: 10.5px; color: #bbb; text-transform: uppercase; letter-spacing: .5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jvp-topo-acoes { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.jvp-topo-btn, .jvp-fechar { background: rgba(255,255,255,.08); border: 0; color: #fff; width: 32px; height: 32px; border-radius: var(--jvp-rsm); font-size: 15px; cursor: pointer; transition: background .15s; }
.jvp-topo-btn:hover, .jvp-fechar:hover { background: var(--jvp-vermelho); }
.jvp-topo-atendente { display: inline-flex; align-items: center; gap: 5px; background: var(--jvp-vermelho); border: 0; color: #fff; height: 32px; padding: 0 12px 0 10px; border-radius: 16px; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; white-space: nowrap; transition: background .15s; }
.jvp-topo-atendente .jvp-ico { font-size: 14px; line-height: 1; }
.jvp-topo-atendente:hover { background: var(--jvp-vermelho-esc); }

/* ---------- Corpo: mensagens ---------- */
.jvp-corpo { flex: 1; overflow-y: auto; padding: 14px 12px 10px; display: flex; flex-direction: column; gap: 10px; scroll-behavior: smooth; }
.jvp-corpo > * { flex-shrink: 0; }
.jvp-m { display: flex; gap: 8px; align-items: flex-end; max-width: 100%; animation: jvp-aparece .15s ease-out; }
.jvp-m-foto { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; border: 2px solid #fff; box-shadow: var(--jvp-sh); background: var(--jvp-vermelho); object-fit: cover; }
.jvp-m-caixa { position: relative; max-width: 92%; min-width: 60px; padding: 9px 12px 18px; border-radius: var(--jvp-r); box-shadow: var(--jvp-sh); font-size: 13.5px; word-wrap: break-word; overflow-wrap: anywhere; }
.jvp-m-assistant .jvp-m-caixa { background: #fff; border-bottom-left-radius: 4px; }
.jvp-m-user { justify-content: flex-end; }
.jvp-m-user .jvp-m-caixa { background: var(--jvp-vermelho); color: #fff; border-bottom-right-radius: 4px; max-width: 86%; }
.jvp-m-user .jvp-m-hora { color: rgba(255,255,255,.75); }
.jvp-m-hora { position: absolute; right: 10px; bottom: 4px; font-size: 10px; color: var(--jvp-suave); }
.jvp-m-sistema { justify-content: center; }
.jvp-m-sistema .jvp-m-caixa { background: var(--jvp-linha); color: var(--jvp-suave2); font-size: 12px; padding: 6px 12px; box-shadow: none; border-radius: 14px; text-align: center; max-width: 95%; }
.jvp-m-ok .jvp-m-caixa { background: var(--jvp-verde-cl); color: #1e5a2a; }
.jvp-m-erro .jvp-m-caixa { background: var(--jvp-vermelho-cl); color: var(--jvp-vermelho-esc); }
.jvp-m-espera .jvp-m-caixa { background: transparent; }
.jvp-m-texto p { margin: 0 0 7px; }
.jvp-m-texto p:last-child, .jvp-m-texto ul:last-child, .jvp-m-texto ol:last-child { margin-bottom: 0; }
.jvp-m-texto code { font-family: ui-monospace, Consolas, monospace; font-size: 12px; background: var(--jvp-cinza); padding: 0 4px; border-radius: 4px; }
.jvp-m-user .jvp-m-texto code { background: rgba(255,255,255,.2); }
.jvp-md-lista { margin: 0 0 7px; padding-left: 20px; }
.jvp-md-lista li { margin: 2px 0; }
.jvp-md-lista li .jvp-card { margin: 4px 0 6px -16px; }
.jvp-painel p.jvp-md-tit { font-weight: 800; font-size: 14px; margin: 4px 0 6px; }
.jvp-m-anexos { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.jvp-m-anexo { font-size: 11.5px; background: rgba(255,255,255,.18); border-radius: 10px; padding: 2px 8px; }
.jvp-m-transcricao { margin-top: 6px; font-size: 12px; background: rgba(255,255,255,.14); border-radius: var(--jvp-rsm); padding: 5px 8px; }
.jvp-m-status { font-size: 11.5px; color: var(--jvp-suave2); margin-top: 6px; padding-left: 16px; position: relative; }
.jvp-m-status::before { content: ''; position: absolute; left: 0; top: 4px; width: 9px; height: 9px; border-radius: 50%; border: 2px solid var(--jvp-linha2); border-top-color: var(--jvp-vermelho); animation: jvp-gira .8s linear infinite; }
.jvp-digitando { display: inline-flex; gap: 4px; padding: 4px 0; }
.jvp-digitando i { width: 7px; height: 7px; border-radius: 50%; background: var(--jvp-linha2); animation: jvp-pisca 1.2s infinite; }
.jvp-digitando i:nth-child(2) { animation-delay: .2s; } .jvp-digitando i:nth-child(3) { animation-delay: .4s; }
.jvp-m-retomada .jvp-m-caixa { background: transparent; font-size: 11px; }

/* ---------- Cartão de produto ---------- */
.jvp-card { display: flex; gap: 10px; align-items: flex-start; margin: 6px 0 8px; padding: 9px; border: 1px solid var(--jvp-linha); border-radius: var(--jvp-r); background: #fafafa; }
.jvp-card-propria { border-color: #f0c8cf; background: #fff7f8; }
.jvp-card-vazio { color: var(--jvp-suave); font-size: 12px; }
.jvp-card-img { flex: 0 0 56px; width: 56px; height: 56px; border-radius: var(--jvp-rsm); background: #fff; border: 1px solid var(--jvp-linha); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.jvp-card-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.jvp-card-emoji { font-size: 26px; }
.jvp-card-info { flex: 1; min-width: 0; }
.jvp-painel p.jvp-card-nome { margin: 0; font-weight: 700; font-size: 13px; line-height: 1.3; color: #1e1e1e; }
.jvp-painel p.jvp-card-sub { margin: 2px 0 0; font-size: 11.5px; color: var(--jvp-suave2); }
.jvp-chip-propria { display: inline-block; margin-left: 6px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--jvp-vermelho); background: var(--jvp-vermelho-cl); border-radius: 8px; padding: 1px 6px; }
.jvp-painel p.jvp-card-preco { margin: 4px 0 0; font-size: 13px; }
.jvp-painel p.jvp-card-preco strong { font-size: 15px; color: var(--jvp-vermelho); }
.jvp-painel p.jvp-card-preco span { font-size: 11.5px; color: var(--jvp-suave2); }
.jvp-painel p.jvp-card-estoque { margin: 2px 0 0; font-size: 11.5px; font-weight: 600; }
.jvp-card-estoque.jvp-ok { color: var(--jvp-verde); } .jvp-card-estoque.jvp-nao { color: var(--jvp-ambar); }
.jvp-card-acoes { display: flex; align-items: center; gap: 8px; margin-top: 7px; flex-wrap: wrap; }
.jvp-stepper { display: inline-flex; align-items: stretch; border: 1px solid var(--jvp-linha2); border-radius: var(--jvp-rsm); overflow: hidden; background: #fff; }
.jvp-stepper button { width: 28px; border: 0; background: var(--jvp-cinza); cursor: pointer; font-size: 15px; color: var(--jvp-tinta); }
.jvp-stepper button:hover { background: var(--jvp-linha); }
.jvp-card-q { width: 52px; border: 0; text-align: center; font-size: 13px; font-family: inherit; -moz-appearance: textfield; }
.jvp-card-q::-webkit-outer-spin-button, .jvp-card-q::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ---------- Botões ---------- */
.jvp-botao { border: 1px solid var(--jvp-linha2); background: #fff; color: var(--jvp-tinta); border-radius: var(--jvp-rsm); padding: 7px 12px; font-size: 12.5px; font-weight: 600; font-family: inherit; cursor: pointer; transition: background .15s, border-color .15s; }
.jvp-botao:hover { background: var(--jvp-cinza); }
.jvp-botao.jvp-principal { background: var(--jvp-vermelho); border-color: var(--jvp-vermelho); color: #fff; }
.jvp-botao.jvp-principal:hover { background: var(--jvp-vermelho-esc); }
.jvp-botao.jvp-feito { background: var(--jvp-verde); border-color: var(--jvp-verde); color: #fff; }
.jvp-botao:disabled { opacity: .55; cursor: not-allowed; }
.jvp-link { border: 0; background: none; color: var(--jvp-azul); font-size: 12.5px; font-family: inherit; cursor: pointer; padding: 4px 2px; text-decoration: underline; }
.jvp-link:hover { color: var(--jvp-vermelho); }

/* ---------- Carrinho, fontes, respostas rápidas ---------- */
.jvp-carrinho { margin-top: 8px; border: 1px solid var(--jvp-linha); border-radius: var(--jvp-r); background: #fafafa; padding: 8px 10px; font-size: 12.5px; }
.jvp-painel p.jvp-carrinho-tit { margin: 0 0 4px; font-weight: 700; }
.jvp-painel p.jvp-carrinho-linha { margin: 2px 0; display: flex; justify-content: space-between; gap: 10px; }
.jvp-painel p.jvp-carrinho-linha span:last-child { white-space: nowrap; }
.jvp-painel p.jvp-carrinho-aviso { margin: 1px 0 3px; font-size: 11.5px; color: var(--jvp-ambar); }
.jvp-painel p.jvp-carrinho-total { margin: 6px 0 2px; padding-top: 6px; border-top: 1px solid var(--jvp-linha); display: flex; justify-content: space-between; font-size: 13px; }
.jvp-fontes { margin-top: 8px; padding-top: 6px; border-top: 1px dashed var(--jvp-linha); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.jvp-fontes-tit { font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--jvp-suave); font-weight: 700; }
.jvp-fonte { font-size: 11.5px; color: var(--jvp-azul); text-decoration: none; background: var(--jvp-azul-cl); border-radius: 10px; padding: 2px 8px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jvp-fonte:hover { text-decoration: underline; }
.jvp-fonte-fab { background: var(--jvp-verde-cl); color: #1e5a2a; }
.jvp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.jvp-chip { border: 1px solid var(--jvp-vermelho); background: #fff; color: var(--jvp-vermelho); border-radius: 16px; padding: 5px 11px; font-size: 12.5px; font-weight: 600; font-family: inherit; cursor: pointer; transition: background .15s; }
.jvp-chip:hover { background: var(--jvp-vermelho-cl); }

/* ---------- Sugestões "Para a sua loja" (3.0) ---------- */
.jvp-sug { margin-top: 10px; }
.jvp-painel p.jvp-sug-tit { margin: 0 0 4px; font-weight: 800; font-size: 13px; }
.jvp-painel p.jvp-sug-sub { margin: 0 0 6px; font-size: 12px; color: var(--jvp-suave2); }
.jvp-sug-card { border: 1px solid var(--jvp-linha); border-radius: var(--jvp-r); background: #fafafa; padding: 8px 10px; margin: 6px 0; }
.jvp-painel p.jvp-sug-titulo { margin: 0; font-size: 13px; font-weight: 700; line-height: 1.3; color: #1e1e1e; }
.jvp-sug-chip { display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; color: #fff; background: var(--jvp-grafite); border-radius: 8px; padding: 1px 6px; vertical-align: middle; }
.jvp-painel p.jvp-sug-motivo { margin: 3px 0 0; font-size: 12px; color: #6b6b6b; line-height: 1.4; }
.jvp-sug-acoes { display: flex; gap: 8px; align-items: center; margin-top: 6px; flex-wrap: wrap; }
.jvp-painel p.jvp-sug-obrigado { margin: 0; font-size: 12.5px; color: #6b6b6b; }

/* ---------- Rodapé: visor, atendente, anexos, composer ---------- */
.jvp-rodape { background: #fff; border-top: 1px solid var(--jvp-linha); padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px)); }
.jvp-visor { margin-bottom: 8px; background: #111; border-radius: var(--jvp-r); padding: 8px; }
.jvp-video { display: block; width: 100%; max-height: 260px; background: #000; border-radius: var(--jvp-rsm); object-fit: contain; }
.jvp-painel p.jvp-aviso-visor { margin: 6px 0; font-size: 12px; color: #ddd; }
.jvp-visor-acoes { display: flex; gap: 8px; }
.jvp-form-atendente { margin-bottom: 8px; border: 1px solid var(--jvp-linha2); border-radius: var(--jvp-r); background: var(--jvp-cinza); padding: 10px; }
.jvp-painel p.jvp-form-tit { margin: 0 0 6px; font-weight: 700; font-size: 13px; }
.jvp-texto-atendente { width: 100%; border: 1px solid var(--jvp-linha2); border-radius: var(--jvp-rsm); padding: 7px 9px; font: inherit; font-size: 13px; resize: vertical; }
.jvp-form-acoes { display: flex; gap: 8px; align-items: center; margin-top: 6px; }
.jvp-painel p.jvp-form-nota { margin: 6px 0 0; font-size: 11px; color: var(--jvp-suave2); }
.jvp-anexos { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.jvp-anexo { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; background: var(--jvp-cinza); border: 1px solid var(--jvp-linha); border-radius: 12px; padding: 3px 6px 3px 9px; }
.jvp-anexo button { border: 0; background: none; cursor: pointer; font-size: 14px; line-height: 1; color: var(--jvp-suave2); padding: 0 3px; }
.jvp-anexo button:hover { color: var(--jvp-vermelho); }
.jvp-anexo-espera { color: var(--jvp-suave); font-style: italic; }
.jvp-gravando-aviso { font-size: 12px; color: var(--jvp-vermelho); margin-bottom: 6px; animation: jvp-pisca 1.2s infinite; }
.jvp-composer { position: relative; display: flex; align-items: flex-end; gap: 6px; }
.jvp-entrada { flex: 1; min-width: 0; min-height: 42px; max-height: 140px; overflow-y: hidden; box-sizing: border-box; border: 1.5px solid var(--jvp-linha2); border-radius: 20px; padding: 9px 14px; font: inherit; font-size: 13.5px; line-height: 1.4; resize: none; outline: none; transition: border-color .15s; }
.jvp-entrada:focus { border-color: var(--jvp-vermelho); }
.jvp-ico-btn { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--jvp-linha2); background: #fff; color: var(--jvp-tinta); font-size: 18px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background .15s, border-color .15s; }
.jvp-ico-btn:hover { background: var(--jvp-cinza); }
.jvp-ico-btn:disabled { opacity: .5; cursor: not-allowed; }
.jvp-enviar { background: var(--jvp-vermelho); border-color: var(--jvp-vermelho); color: #fff; font-size: 16px; }
.jvp-enviar:hover { background: var(--jvp-vermelho-esc); }
.jvp-parar { background: var(--jvp-grafite); border-color: var(--jvp-grafite); color: #fff; font-size: 14px; }
.jvp-mic.jvp-gravando { background: var(--jvp-vermelho); border-color: var(--jvp-vermelho); color: #fff; animation: jvp-pulsa 1.2s infinite; }
.jvp-menu { position: absolute; left: 0; bottom: 46px; background: #fff; border: 1px solid var(--jvp-linha2); border-radius: var(--jvp-r); box-shadow: var(--jvp-sh-lg); padding: 4px; z-index: 2; min-width: 230px; }
.jvp-menu-item { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 9px 10px; font: inherit; font-size: 13px; border-radius: var(--jvp-rsm); cursor: pointer; }
.jvp-menu-item:hover { background: var(--jvp-cinza); }
.jvp-rodape-nota { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 5px; font-size: 10.5px; color: var(--jvp-suave); }
.jvp-pref { font-size: 10.5px; white-space: nowrap; }

/* ---------- Foco, movimento, celular ---------- */
.jvp-painel button:focus-visible, .jvp-painel textarea:focus-visible, .jvp-painel input:focus-visible, .jvp-painel a:focus-visible, .jvp-abrir button:focus-visible { outline: 2px solid var(--jvp-azul); outline-offset: 2px; }
@keyframes jvp-desliza { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes jvp-aparece { from { opacity: 0; } to { opacity: 1; } }
@keyframes jvp-entra { from { transform: translateY(8px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes jvp-pisca { 0%, 80%, 100% { opacity: .35; } 40% { opacity: 1; } }
@keyframes jvp-gira { to { transform: rotate(360deg); } }
@keyframes jvp-pulsa { 0% { box-shadow: 0 0 0 0 rgba(200,16,46,.45); } 70% { box-shadow: 0 0 0 10px rgba(200,16,46,0); } 100% { box-shadow: 0 0 0 0 rgba(200,16,46,0); } }
@media (prefers-reduced-motion: reduce) {
  .jvp-balao, .jvp-painel, .jvp-fundo, .jvp-m { animation: none; } .jvp-balao-ico i, .jvp-digitando i, .jvp-m-status::before, .jvp-mic.jvp-gravando, .jvp-gravando-aviso { animation: none; } .jvp-avatar-btn { transition: none; }
}
@media (max-width: 640px) {
  .jvp-painel, .jvp-painel.jvp-largo { width: 100%; }
  .jvp-topo-atendente { padding: 0; width: 32px; justify-content: center; }
  .jvp-topo-atendente .jvp-rot { display: none; }
  .jvp-topo-btn[title^='Painel'] { display: none; }
  .jvp-m-caixa { max-width: 96%; }
  .jvp-m-user .jvp-m-caixa { max-width: 92%; }
  .jvp-rodape-nota span { display: none; }
}

/* Portal do CD (28/10/2026): WhatsApp da equipe comercial e "Enviar para meu WhatsApp" */
.jvp-m-ok .jvp-wa-link { display: inline-block; margin-top: 4px; color: #1e5a2a; font-weight: 600; text-decoration: underline; }
.jvp-carrinho .jvp-whatsapp { display: block; margin-top: 2px; }
.jvp-carrinho .jvp-whatsapp:disabled { opacity: .6; cursor: default; text-decoration: none; }
/* Campo de texto: só a borda vermelha no foco (sem o contorno azul do portal) */
.jvp-painel .jvp-entrada:focus, .jvp-painel .jvp-entrada:focus-visible { outline: none; border-color: var(--jvp-vermelho); box-shadow: 0 0 0 3px rgba(200,16,46,.10); }
@media (max-width: 640px) { .jvp-topo-nome span { letter-spacing: .2px; } }
/* Topo no computador: "Falar com atendente" por extenso (sem o ícone, para caber com o nome); no celular, só o ícone */
.jvp-topo-atendente .jvp-ico { display: none; }
.jvp-topo-atendente { padding: 0 12px; }
.jvp-topo-acoes { gap: 5px; }
.jvp-topo-nome span { letter-spacing: .4px; }
@media (max-width: 640px) {
  .jvp-topo-atendente { padding: 0; }
  .jvp-topo-atendente .jvp-ico { display: inline; }
}
@media (min-width: 641px) {
  .jvp-topo { padding-left: 12px; gap: 8px; }
  .jvp-topo-id { gap: 10px; }
  .jvp-topo-avatar { width: 40px; height: 40px; }
  .jvp-topo-btn, .jvp-fechar { width: 30px; height: 30px; }
  .jvp-topo-atendente { padding: 0 10px; font-size: 11.5px; height: 30px; }
}
/* ==========================================================================
   Campo "Pergunte ao Julinho" no cabeçalho do Portal (30/10/2026)
   Mesmo desenho do Portal da Rede (pílula com o avatar à esquerda e botão
   vermelho redondo com seta), nas cores do Portal do CD (topo branco).
   Prefixo jvb-. Até 900 px de largura fica escondido: vale o botão flutuante.
   ========================================================================== */
.jvb {
  flex: 1 1 auto; max-width: 640px; min-width: 260px; margin: 0 24px; height: 42px;
  display: flex; align-items: center; gap: 8px; padding: 0 4px 0 2px; box-sizing: border-box;
  background: var(--g100, #f5f5f5); border: 1.5px solid var(--g200, #eaeaea); border-radius: 999px;
  font-family: 'Segoe UI', system-ui, sans-serif; transition: border-color .15s, background .15s, box-shadow .15s;
}
.jvb[hidden] { display: none !important; }
.jvb:hover { border-color: var(--g300, #d0d0d0); }
.jvb:focus-within { background: #fff; border-color: var(--red, #C8102E); box-shadow: 0 0 0 3px rgba(200, 16, 46, .10); }
.jvb-avatar {
  flex: 0 0 auto; width: 38px; height: 38px; padding: 0; border-radius: 50%; overflow: hidden; cursor: pointer;
  border: 2px solid var(--red, #C8102E); background: #fff; display: flex; align-items: center; justify-content: center;
}
.jvb-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jvb-entrada {
  flex: 1 1 auto; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; padding: 0 4px;
  font: inherit; font-size: 13.5px; color: var(--g700, #333); text-overflow: ellipsis;
}
.jvb-entrada::placeholder { color: var(--g500, #888); opacity: 1; }
.jvb-ir {
  flex: 0 0 auto; width: 32px; height: 32px; border: 0; border-radius: 50%; cursor: pointer;
  background: var(--red, #C8102E); color: #fff; display: flex; align-items: center; justify-content: center;
  transition: background .15s, transform .1s;
}
.jvb-ir:hover { background: var(--red-dark, #9e0c23); }
.jvb-ir:active { transform: scale(.94); }
.jvb-avatar:focus-visible, .jvb-ir:focus-visible { outline: 2px solid var(--red, #C8102E); outline-offset: 2px; }
/* Campo no centro exato da barra (como no Portal da Rede). A largura desconta o maior dos dois lados
   (título | AltCash, Limite e Carrinho), medido pelo julinho-portal.js em --jvb-lado: nunca fica por cima deles.
   Sem espaço para pelo menos 220 px, o campo some e vale o botão flutuante. */
@media (min-width: 901px) {
  .topbar.tem-jvb { position: sticky; }
  .topbar.tem-jvb .jvb { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); margin: 0; min-width: 0; max-width: none;
    width: min(640px, calc(100% - 2 * var(--jvb-lado, 280px))); }
}
.jvb.jvb-sem-espaco { display: none !important; }
/* O campo divide a barra com AltCash / Limite / Carrinho: esses não quebram linha */
.topbar .tb-right > * { white-space: nowrap; }
@media (max-width: 1100px) { .jvb { margin: 0 12px; min-width: 150px; } .jvb-entrada { font-size: 13px; } }
/* Até 900 px (tablet / celular) a barra não comporta o campo: vale o botão flutuante */
@media (max-width: 900px) { .jvb { display: none !important; } }