/* 🔐 Portal do Cliente — visual próprio (área externa), mesmo DNA do SantaOps: azul #2b6cff,
   cards 14px, badges pílula. Prefixo pt- em tudo: nada aqui colide com o sistema interno. */
:root{
  --bg:#f4f6fb; --card:#fff; --line:#e6e9f0; --ink:#1c2333; --muted:#6b7280;
  --azul:#2b6cff; --azul-esc:#1d4fc4; --azul-bg:#e7eeff; --verde:#12a594; --verde-bg:#e6f7f3;
  --vermelho:#e5484d; --vermelho-bg:#fdecec; --laranja:#f5a524; --laranja-bg:#fdf3e2; --laranja-tx:#b57708;
  --cinza:#8b93a7; --cinza-bg:#eef0f5; --roxo:#7a3bd0; --roxo-bg:#f3ecfb;
  --sombra:0 1px 3px rgba(20,30,60,.08),0 1px 2px rgba(20,30,60,.05);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 -apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--azul);text-decoration:none} a:hover{text-decoration:underline}
[hidden]{display:none!important}

/* ── autenticação: duas metades (imagem/mensagem à esquerda, formulário à direita) ── */
body.pt-auth{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh}
/* 💜 v0.154.0 (11/09, pedido do usuário): painel do login nas cores da LOGO — roxo #5F4790 no gradiente, verde-água #0ABAB5 nos círculos, no rótulo e nos ✓ (não o azul da UI) */
.pt-lado{position:relative;overflow:hidden;background:linear-gradient(135deg,#43306e 0%,#5F4790 55%,#7a63ab 100%);color:#fff;display:flex;align-items:center;justify-content:center;padding:48px}
.pt-lado::before,.pt-lado::after{content:"";position:absolute;border-radius:50%;background:rgba(10,186,181,.22)}
.pt-lado::before{width:520px;height:520px;right:-160px;top:-180px}
.pt-lado::after{width:380px;height:380px;left:-120px;bottom:-140px}
.pt-lado-in{position:relative;max-width:440px}
.pt-lado .pt-marca{font-size:13px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#8fe6e2;margin-bottom:22px}
.pt-lado h2{font-size:34px;line-height:1.15;margin:0 0 14px;font-weight:800}
.pt-lado p{font-size:15px;opacity:.9;margin:0 0 22px;line-height:1.5}
.pt-lado ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;font-size:14px}
/* ✓ em SVG (varredura 27/09): o desenho 'check' do NAV.ICONES em branco sobre o círculo verde-água (data: é liberado no img-src da CSP) */
.pt-lado li::before{content:"";display:inline-block;vertical-align:-6px;width:22px;height:22px;border-radius:50%;background:#0ABAB5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/14px no-repeat;margin-right:10px}
.pt-form{display:flex;align-items:center;justify-content:center;padding:32px 20px}
.pt-caixa{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sombra);padding:30px 30px 26px;display:flex;flex-direction:column;gap:14px}
.pt-logo{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:6px}
.pt-logo img{max-height:56px;max-width:220px;object-fit:contain}
.pt-logo .pt-nome{font-size:22px;font-weight:800;color:var(--azul)}
.pt-logo small{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.4px;text-transform:uppercase}
.pt-caixa h1{font-size:19px;margin:0}
.pt-caixa label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.pt-caixa input{font:inherit;font-size:14px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);width:100%}
.pt-caixa input:focus{outline:2px solid #c3d4ff;border-color:var(--azul)}
.pt-senha{position:relative;display:flex}
.pt-senha input{flex:1;min-width:0;padding-right:44px}
.pt-olho{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:none;cursor:pointer;font-size:16px;line-height:1;padding:6px 8px;border-radius:8px;color:var(--muted);display:flex;align-items:center}   /* olho em SVG (27/09) */
.pt-olho:hover{color:var(--ink)}
.pt-btn{display:block;text-align:center;font:inherit;font-size:14px;font-weight:700;padding:12px 16px;border-radius:999px;border:1px solid var(--azul);background:linear-gradient(135deg,#2b6cff,#4a86ff);color:#fff;cursor:pointer;width:100%}
.pt-btn:hover{text-decoration:none;filter:brightness(1.05)}
.pt-btn:disabled{opacity:.6;cursor:default}
.pt-btn.sec{background:#fff;color:var(--azul)}
.pt-erro{color:var(--vermelho);font-weight:700;font-size:13px;min-height:18px}
.pt-ok{background:var(--verde-bg);color:#0b7a6e;border-radius:10px;padding:12px 14px;font-size:13.5px;line-height:1.5}
.pt-dica{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5;text-align:center}
.pt-rodape{font-size:11.5px;color:var(--muted);text-align:center;margin-top:8px}
@media (max-width:820px){
  body.pt-auth{grid-template-columns:1fr}
  .pt-lado{padding:34px 24px 28px;min-height:0}
  .pt-lado h2{font-size:24px} .pt-lado p{font-size:14px} .pt-lado ul{display:none}
  .pt-form{padding:18px 14px 30px}
}

/* ── app do cliente — MOBILE FIRST (pedido do usuário 04/09): a base é o celular (barra no topo +
   navegação por abas no rodapé, conteúdo em largura total, tabelas viram cards); o desktop (≥901px)
   é a extensão: menu lateral fixo e tabelas de verdade. ── */
body.pt-app{display:block;min-height:100vh;padding:56px 0 calc(64px + env(safe-area-inset-bottom))}
.pt-topo{position:fixed;top:0;left:0;right:0;height:56px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 14px;z-index:20}
.pt-topo .pt-logo{flex-direction:row;align-items:center;gap:8px;margin:0} .pt-topo .pt-logo img{max-height:32px;max-width:150px} .pt-topo .pt-logo .pt-nome{font-size:17px} .pt-topo .pt-logo small{display:none}
.pt-topo .pt-av{margin-left:auto;width:34px;height:34px;border-radius:50%;background:var(--azul);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:12px}
.pt-tabbar{position:fixed;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--line);display:flex;z-index:20}
.pt-tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;font-weight:700;color:var(--muted);text-decoration:none}
.pt-tabbar a .pt-tico{font-size:21px;line-height:1} .pt-tabbar a.ativo{color:var(--azul)} .pt-tabbar a:hover{text-decoration:none}
.pt-side{display:none}
.pt-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--ink);font-weight:600;font-size:13.5px}
.pt-item:hover{background:var(--bg);text-decoration:none} .pt-item.ativo{background:var(--azul-bg);color:var(--azul)}
/* ícones SVG do menu e das abas (v0.306.3 — mesmos desenhos do SantaOps): cinza em repouso, azul no ativo */
.pt-svg{display:block;flex:none}
.pt-item .pt-svg{width:18px;height:18px;color:var(--muted)} .pt-item.ativo .pt-svg{color:var(--azul)}
.pt-tabbar a .pt-tico .pt-svg{width:22px;height:22px}
/* 🎨 ícones SVG no meio do texto (varredura emoji → SVG, 27/09): o icones-flow.js (ICF.ic) gera o MESMO <svg class="ic-i"> do
   NAV.ic do SantaOps; estas páginas não carregam o nav.css, então as duas classes de apoio moram aqui com o mesmo efeito */
.ic-cheio{fill:currentColor}   /* desenho preenchido (estrela do contato principal) */
.ic-gira{animation:icGira 1s linear infinite}   /* carregando */
@keyframes icGira{to{transform:rotate(360deg)}}
.pt-h2>.ic-i,.pt-main h1>.ic-i{color:var(--azul)}   /* ícone do título no azul da casa, como nos títulos do SantaOps */
.pt-quem{display:flex;align-items:center;gap:9px;padding:8px 10px;font-size:12.5px;line-height:1.25}
.pt-quem .pt-av{width:32px;height:32px;border-radius:50%;background:var(--azul);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:12px;flex:none}
.pt-quem small{display:block;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}
.pt-main{padding:16px 14px 24px;max-width:none}
.pt-main h1{font-size:20px;margin:0 0 4px}
.pt-main .pt-sub{color:var(--muted);margin:0 0 16px;font-size:13.5px}
/* 🏅 selos do Início (v0.474.0): celular = linha abaixo do título; desktop = canto superior direito */
.pt-inicio-cab{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;column-gap:20px}
.pt-inicio-cab>div:first-child{min-width:0;flex:1 1 320px}
.pt-selos{display:flex;align-items:center;gap:10px;margin:0 0 16px;flex-wrap:wrap}
.pt-selo{display:flex;align-items:center;height:52px;background:#fff;border:1px solid var(--line);border-radius:12px;box-sizing:border-box}
/* o selo oficial já tem borda própria e margem transparente (200×100, desenho nas linhas 15–84 = 70% da altura):
   sem moldura nossa; a 72 px o desenho fica com ~50 px, inteiro dentro dos 52 px — só a margem transparente é recortada */
.pt-selo-ra{background:none;border:0;border-radius:0;overflow:hidden;justify-content:center}
.pt-selo-ra img{height:72px;width:auto;display:block;flex:none}
.pt-selo-ra:hover{opacity:.85}
.pt-selo-g{gap:9px;padding:0 14px 0 12px}
.pt-g{width:24px;height:24px;flex:none}
.pt-g-nota{display:flex;align-items:center;gap:6px;line-height:1}
.pt-g-nota b{font-size:18px;color:#1f2937}
.pt-estrelas{display:flex;gap:1px}
.pt-estrelas svg{width:14px;height:14px;fill:#fbbc05}
.pt-selo-g small{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.pt-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px}
.pt-card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sombra);padding:14px 16px}
.pt-card .pt-kpi{font-size:26px;font-weight:800;color:var(--azul);line-height:1.1}
.pt-card .pt-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;color:var(--muted);margin-bottom:6px}
.pt-badge{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap}
.pt-badge.azul{background:var(--azul-bg);color:var(--azul)} .pt-badge.verde{background:var(--verde-bg);color:#0b7a6e}
.pt-badge.laranja{background:var(--laranja-bg);color:var(--laranja-tx)} .pt-badge.cinza{background:var(--cinza-bg);color:#555c6b}
.pt-badge.roxo{background:var(--roxo-bg);color:var(--roxo)} .pt-badge.vermelho{background:var(--vermelho-bg);color:var(--vermelho)}
/* tabelas no celular = uma "ficha" por linha (rótulo vem do data-l de cada célula) */
.pt-tab{width:100%;border-collapse:collapse}
.pt-tab thead{display:none}
.pt-tab tr{display:block;padding:10px 14px;border-bottom:1px solid #f1f3f8}
.pt-tab tr:last-child{border-bottom:0}
.pt-tab td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;font-size:13.5px;border:0;text-align:right}
.pt-tab td::before{content:attr(data-l);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;color:var(--muted);text-align:left;flex:none}
.pt-tab td:not([data-l])::before{display:none}
.pt-tab td.pt-td-main{text-align:left;font-size:14.5px;padding-bottom:6px} .pt-tab td.pt-td-main::before{display:none}
.pt-tab small{color:var(--muted);font-size:11.5px}
.pt-tab tr.pt-lin{cursor:pointer}
@media (min-width:901px){
  body.pt-app{padding:0 0 0 230px}
  .pt-topo,.pt-tabbar{display:none}
  .pt-side{position:fixed;left:0;top:0;bottom:0;width:230px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 12px;gap:4px}
  .pt-side .pt-logo{align-items:flex-start;padding:4px 10px 14px;margin:0;border-bottom:1px solid var(--line)}
  .pt-side .pt-logo img{max-height:40px} .pt-side .pt-logo .pt-nome{font-size:19px}
  .pt-side .pt-sec{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:14px 10px 4px}
  .pt-side .pt-fim{margin-top:auto;border-top:1px solid var(--line);padding-top:10px}
  .pt-main{max-width:80vw;margin:0 auto;padding:26px 28px}
  .pt-main h1{font-size:22px;margin:0 0 6px} .pt-main .pt-sub{font-size:14px;margin-bottom:20px}
  .pt-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:22px}
  .pt-card{padding:16px 18px} .pt-card .pt-kpi{font-size:28px}
  .pt-tab thead{display:table-header-group}
  .pt-tab tr{display:table-row;padding:0;border:0}
  .pt-tab td{display:table-cell;padding:11px 14px;border-bottom:1px solid #f1f3f8;text-align:left;font-size:13.5px;vertical-align:top}
  .pt-tab td::before{display:none} .pt-tab td.pt-td-main{font-size:13.5px}
  .pt-tab tr:last-child td{border-bottom:0}
  .pt-tab tr.pt-lin:hover td{background:#f7f9ff}
}

/* ── Fase 5: telas do cliente ── */
.pt-h2{font-size:15px;font-weight:800;margin:22px 0 10px} .pt-h2.top{margin-top:0} .pt-h2 small{color:var(--muted);font-weight:600}
.pt-kcard{display:block;color:inherit} .pt-kcard:hover{text-decoration:none;border-color:var(--azul)}
.pt-vazio{color:var(--muted);text-align:center;padding:22px}
.pt-tabbox{padding:0;overflow:hidden}
/* .pt-tab: base mobile (cards) e desktop (tabela) definidos no bloco do app acima */
.pt-tab th{font-size:10.5px;text-transform:uppercase;letter-spacing:.35px;color:var(--muted);font-weight:700;text-align:left;padding:10px 14px;background:#fafbfe;border-bottom:1px solid var(--line)}
.pt-volta{display:inline-block;margin-bottom:8px;font-weight:600}
.pt-pedcab{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap} .pt-pedcab h1{margin-bottom:2px}
/* v0.474.3 (pedido do usuário): valor AO LADO do nº do pedido; selos no canto direito (celular: embaixo do título) */
.pt-pedtit{min-width:0;flex:1 1 320px}
.pt-pedtit-l{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap}
.pt-pedtit-l h1{margin:0 0 2px}
.pt-total{font-size:20px;font-weight:800;color:var(--azul)}
.pt-pedtit-l .pt-badge{align-self:center}
.pt-pedcab .pt-selos{margin:0 0 16px auto}
@media (max-width:640px){ .pt-pedcab .pt-selos{margin-left:0} }
/* 🧭 etapas do pedido (v0.474.3) — mesmo desenho da linha das remessas */
.pt-etped{padding:6px 18px 14px;margin-bottom:18px}
.pt-etped .pt-prog{margin:12px 0 10px}
.pt-etped-txt{margin:0;text-align:center;font-size:13.5px;color:var(--muted)} .pt-etped-txt b{color:var(--ink)}
/* 🧾 Compra e pagamento (v0.132.0): PC · comprador · NF · parcelas (boleto/forma, vencimento) + aviso de atraso */
.pt-fin{margin:4px 0 18px} .pt-fin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 16px} .pt-fin-v{font-size:14px;font-weight:600} .pt-fin-v small{color:var(--muted);font-weight:400}
.pt-alerta{background:var(--vermelho-bg);color:var(--vermelho);border:1px solid #f5c2c4;border-radius:10px;padding:8px 12px;font-weight:700;margin-bottom:12px}
.pt-parcs{display:flex;flex-direction:column;gap:6px}
.pt-parc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;background:var(--bg);border-radius:10px;padding:8px 12px;font-size:13px} .pt-parc.atrasada{background:var(--vermelho-bg)} .pt-parc>b{min-width:90px} .pt-parc .pt-btn{margin-left:auto} .pt-parc-forma{margin-left:auto;color:var(--muted);text-transform:capitalize}
/* 📦 Envios (v0.129.0): cards de resumo por status (clicáveis = filtro), busca/filtro e tabela com linha de detalhes */
.pt-env-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 12px}
.pt-env-k{display:flex;flex-direction:column;gap:8px;font:inherit;color:var(--ink);cursor:pointer;text-align:left;padding:12px 14px}
.pt-env-k:hover{border-color:#c9d3f0} .pt-env-k.ativo{border-color:var(--azul);box-shadow:0 0 0 2px var(--azul-bg)}
.pt-env-kl{display:flex;justify-content:space-between;gap:6px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;color:var(--muted)}
.pt-env-kn{font-size:24px;font-weight:800;line-height:1.1} .pt-env-k.azul .pt-env-kn{color:var(--azul)} .pt-env-k.verde .pt-env-kn{color:#0b7a6e} .pt-env-k.laranja .pt-env-kn{color:var(--laranja-tx)} .pt-env-k.roxo .pt-env-kn{color:var(--roxo)} .pt-env-k.cinza .pt-env-kn{color:#555c6b}
/* ícone SVG do card (27/09, no lugar do emoji colorido): mesma cor do número */
.pt-env-k.azul .pt-env-kl .ic-i{color:var(--azul)} .pt-env-k.verde .pt-env-kl .ic-i{color:#0b7a6e} .pt-env-k.laranja .pt-env-kl .ic-i{color:var(--laranja-tx)} .pt-env-k.roxo .pt-env-kl .ic-i{color:var(--roxo)} .pt-env-k.cinza .pt-env-kl .ic-i{color:#555c6b}
.pt-env-filtros{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px} .pt-env-filtros input,.pt-env-filtros select{font:inherit;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff} .pt-env-filtros input{flex:1;min-width:200px}
.pt-tab-env td code{background:#eef0f5;padding:2px 7px;border-radius:6px;font-size:12px;white-space:nowrap;display:inline-block} .pt-tab-env td small{display:block} .pt-tab-env .pt-link{margin:0}
.pt-tab-env td.nw{white-space:nowrap}
.pt-env-rt{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:12px;white-space:nowrap} .pt-env-rt .pt-copiar{padding:0;font-size:12px}
/* botão "Detalhes" com seta desenhada (v0.129.1): pílula, uma linha só, seta gira quando aberto */
.pt-env-abrir{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700;color:var(--azul);background:#fff;text-decoration:none}
.pt-env-abrir:hover{border-color:var(--azul);text-decoration:none;background:var(--azul-bg)}
.pt-chev{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.pt-env-abrir.aberto .pt-chev{transform:translateY(2px) rotate(-135deg)}
.pt-env-det td{display:block;background:#fafbfe;padding:12px 14px 14px;text-align:left} .pt-env-det td::before{display:none}
.pt-env-d .pt-prog{margin:4px 0 12px}   /* v0.130.4: sem teto de largura — aproveita o espaço todo (pedido do usuário) */
.pt-env-grid{display:grid;grid-template-columns:1fr;gap:12px;font-size:13px} .pt-env-grid small{color:var(--muted);display:block} .pt-env-grid .pt-tl{margin-top:4px}
.pt-env-vazio{padding:16px}
@media (min-width:901px){ .pt-env-grid{grid-template-columns:1.2fr 1fr 1fr;gap:18px} .pt-env-det td{display:table-cell} .pt-tab-env th,.pt-tab-env td{padding:10px 10px} .pt-tab-env th{white-space:nowrap} }
.pt-rems{display:flex;flex-direction:column;gap:14px}
.pt-rem{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sombra);padding:16px 18px}
.pt-rem-cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px} .pt-rem-cab .pt-badge{margin-left:auto}
.pt-rem-end{font-size:13px;color:#3b4252;margin-top:4px}
.pt-rem-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;font-size:13.5px}
.pt-rem-grid .pt-lbl{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;color:var(--muted);margin-bottom:4px}
.pt-cod{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap} .pt-cod code{background:#eef0f5;padding:3px 8px;border-radius:6px;font-size:13px}
.pt-copiar{border:1px solid var(--line);background:#fff;border-radius:999px;padding:2px 10px;font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;color:var(--azul);display:inline-flex;align-items:center;gap:4px}   /* inline-flex: ícone SVG + texto alinhados (27/09) */
.pt-link{display:inline-block;margin-top:6px;font-weight:600}
.pt-datas{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--muted)}
.pt-obs{margin-top:6px;font-size:12.5px;background:var(--bg);border-radius:8px;padding:6px 10px}
.pt-comp{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:12.5px}
/* linha de progresso: 5 círculos ligados */
.pt-prog{display:flex;align-items:flex-start;margin:16px 0 14px;position:relative}
.pt-etapa{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;min-width:0}
.pt-etapa::before{content:"";position:absolute;top:17px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0}
.pt-etapa:first-child::before{display:none}
.pt-etapa.feita::before,.pt-etapa.atual::before{background:var(--azul)}
.pt-circ{width:36px;height:36px;border-radius:50%;border:2px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;position:relative;z-index:1;color:var(--muted)}
.pt-etapa.feita .pt-circ{border-color:var(--azul);background:var(--azul);color:#fff;font-weight:800}
.pt-etapa.atual .pt-circ{border-color:var(--azul);color:var(--azul);box-shadow:0 0 0 4px var(--azul-bg)}
.pt-et{font-size:11px;margin-top:6px;color:var(--muted);line-height:1.2} .pt-etapa.feita .pt-et,.pt-etapa.atual .pt-et{color:var(--azul);font-weight:700}
/* histórico (timeline) */
.pt-hist{margin-top:10px;font-size:13px} .pt-hist summary{cursor:pointer;color:var(--azul);font-weight:600}
.pt-tl{margin:10px 0 0 6px;border-left:2px solid var(--line);padding-left:16px;display:flex;flex-direction:column;gap:10px}
.pt-tl-i{position:relative} .pt-tl-dot{position:absolute;left:-23px;top:4px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--azul)}
.pt-tl small{color:var(--muted)}
/* artes aprovadas */
.pt-artes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.pt-arte{display:flex;gap:12px;align-items:flex-start;padding:12px}
.pt-arte img{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#fff}
.pt-arte-doc{width:96px;height:96px;border-radius:10px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:34px;background:var(--bg)}
/* v0.127.1: texto ocupa a altura toda do card e os botões grudam no rodapé — cards da mesma fileira ficam com Ver/Baixar alinhados, com nome de 1 ou 2 linhas */
.pt-arte-txt{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;align-self:stretch} .pt-arte-txt small{color:var(--muted)}
.pt-arte-btns{display:flex;gap:6px;margin-top:auto;padding-top:8px} .pt-btn.pt-mini{width:auto;padding:6px 12px;font-size:12px;display:inline-block}
/* filtros do rastreio */
.pt-filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pt-filtros select,.pt-filtros input{font:inherit;font-size:13.5px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.pt-filtros input{flex:1;min-width:220px}
/* meus dados */
.pt-cards2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.pt-dl{display:flex;flex-direction:column;gap:10px;font-size:13.5px} .pt-dl .pt-lbl{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;color:var(--muted)}
.pt-form{display:flex;flex-direction:column;gap:10px} .pt-form label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.pt-form input{font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.pt-end{font-size:13px;margin:4px 0;white-space:pre-line;line-height:1.45}   /* endereço em linhas (08/09): rua, nº / compl. / bairro · cidade / CEP */
@media (max-width:700px){.pt-rem-grid{grid-template-columns:1fr}.pt-et{font-size:9.5px}.pt-circ{width:30px;height:30px;font-size:12px}.pt-etapa::before{top:14px}}
.pt-sair-mobile{margin:22px 0 0;text-align:center} .pt-sair-mobile .pt-btn{display:inline-block;width:auto;padding:10px 22px}
@media (min-width:901px){.pt-sair-mobile{display:none}}
.pt-so-desk{display:none} @media (min-width:901px){.pt-so-desk{display:table-cell}.pt-so-mob{display:none}}
.pt-topo-nome{font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-left:2px}
.pt-versao{font-size:11px;color:var(--muted);padding:8px 12px 0;text-align:center}
.pt-side .pt-versao{text-align:left}
.pt-sair-mobile .pt-versao{display:block;padding:8px 0 0}
/* 📜 atividade */
.pt-atvs{padding:4px 0}
.pt-atv{display:flex;gap:12px;padding:10px 16px;border-bottom:1px solid #f1f3f8;font-size:13.5px;align-items:flex-start}
.pt-atv:last-child{border-bottom:0}
.pt-atv-ico{width:32px;height:32px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;flex:none;font-size:15px}
.pt-atv-txt{min-width:0;overflow-wrap:anywhere} .pt-atv-txt small{color:var(--muted);display:block;margin-top:2px}
.pt-mais{text-align:center;margin:14px 0} .pt-mais .pt-btn{display:inline-block;width:auto;padding:9px 20px}
@media (max-width:420px){.pt-tabbar a{font-size:9.5px}.pt-tabbar a .pt-tico{font-size:19px}}
/* 📍 endereços do cliente */
.pt-form2{display:grid;grid-template-columns:1fr;gap:10px}
.pt-form2 label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--muted)}
.pt-form2 input{font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;width:100%}
.pt-form2 .pt-cepl{display:flex;flex-direction:column;gap:3px} .pt-form2 .pt-cepl span{font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;min-height:14px}
.pt-form2 .pt-chk{flex-direction:row;align-items:center;text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink);cursor:pointer} .pt-form2 .pt-chk input{width:auto}
.pt-form-btns{display:flex;gap:8px;justify-content:flex-end} .pt-form-btns .pt-btn{width:auto;padding:10px 18px}
.pt-endc{position:relative} .pt-endbtn{margin-top:8px}
@media (min-width:700px){.pt-form2{grid-template-columns:repeat(3,minmax(0,1fr))}.pt-form2 label:first-child{grid-column:1/-1}.pt-form2 .pt-erro,.pt-form2 .pt-chk,.pt-form-btns{grid-column:1/-1}}
@media (max-width:420px){.pt-tabbar a{font-size:9px}.pt-tabbar a .pt-tico{font-size:18px}.pt-tabbar a .pt-tico .pt-svg{width:20px;height:20px}}
.pt-arte-doc{text-decoration:none}
.pt-arte-esp{opacity:.75;border-style:dashed} .pt-arte-esp .pt-arte-doc{font-size:28px;color:var(--muted)}   /* v0.134.2: parte dividida ainda sem arte aprovada (27/09: ampulheta em SVG, cinza) */
/* 📍 endereços dentro do box de entregas do pedido */
.pt-dest{margin-bottom:14px}
.pt-dest-cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* 🔍🖨️ v0.137.0: busca + impressora + Gerenciar ficam num bloco à direita */
.pt-dest-acs{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pt-dest-busca{flex:1;min-width:200px;max-width:340px;border:1px solid var(--line);border-radius:999px;padding:7px 13px;font:inherit;font-size:13px;background:#fff;color:var(--tx)}
.pt-dest-busca:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px rgba(43,108,255,.15)}
.pt-dest-i[hidden]{display:none!important}
/* 🖨️ relatório de endereços: só existe na hora de imprimir */
#ptPrint{display:none}
@media print{
  body.pt-imprimindo{padding:0!important;margin:0!important;background:#fff}
  body.pt-imprimindo>*:not(#ptPrint){display:none!important}
  body.pt-imprimindo #ptPrint{display:block;font:12px/1.4 Arial,Helvetica,sans-serif;color:#000;padding:10mm}
  #ptPrint h1{font-size:18px;margin:0 0 4px} #ptPrint p{margin:0 0 10px;color:#444}
  #ptPrint section{break-inside:avoid;page-break-inside:avoid;border:1px solid #999;border-radius:6px;padding:8px 10px;margin:8px 0}
  #ptPrint h3{margin:0 0 4px;font-size:14px} #ptPrint .end{white-space:pre-line} #ptPrint .ac{color:#444;margin-top:2px}
  #ptPrint table{border-collapse:collapse;width:100%;margin-top:6px} #ptPrint th,#ptPrint td{border:1px solid #bbb;padding:3px 6px;text-align:left;font-size:12px;vertical-align:top}
  #ptPrint th{background:#eee} #ptPrint table.tot{margin-bottom:6px}
  #ptPrint h4{margin:10px 0 0;font-size:13px} #ptPrint section.longa{break-inside:auto;page-break-inside:auto} #ptPrint table.pes tr{break-inside:avoid} #ptPrint table.pes td:first-child{width:28px;color:#555}
}
.pt-dest-lista{display:flex;flex-direction:column;gap:8px;margin-top:10px}   /* cada endereço em UMA linha (pedido do usuário 05/09) */
.pt-dest-i{background:var(--bg);border-radius:10px;padding:10px 12px;font-size:13px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px} .pt-dest-i>b{flex:none} .pt-dest-i .pt-end{flex:1;min-width:200px;margin:0} .pt-dest-i>small{flex:none} .pt-dest-i small{color:var(--muted)}
/* 📍 tela de endereços: lista em linhas, não em grade */
.pt-cards.pt-endlista{grid-template-columns:1fr;gap:8px}
/* card EMPILHADO (08/09): apelido em cima, endereço em linhas embaixo, A/C e ✏️ no fim */
.pt-endlista .pt-card{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:12px 16px}
.pt-endlista .pt-card>b{flex:none} .pt-endlista .pt-card .pt-end{margin:0} .pt-endlista .pt-card>small{flex:none;color:var(--muted)}
.pt-endlista .pt-endbtn{margin:4px 0 0;align-self:flex-end}
/* 👤 v0.151.0: contatos secundários do endereço no formulário — uma linha por contato (nome · telefone · ✕) */
.pt-form2 .pt-ctos-box{grid-column:1/-1;display:flex;flex-direction:column;gap:6px}
.pt-ctos{display:flex;flex-direction:column;gap:6px} .pt-ctos:empty{display:none}
.pt-cto{display:flex;gap:8px;align-items:center} .pt-form2 .pt-cto input{flex:1;min-width:0;width:auto} .pt-form2 .pt-cto .cTel{flex:0 0 160px} .pt-cto .pt-btn{flex:none}
@media (max-width:480px){.pt-cto{flex-wrap:wrap}.pt-form2 .pt-cto .cTel{flex:1 1 140px}}
/* 📬 distribuição por endereço (cliente informa a quantidade) */
.pt-dest-i{flex-direction:column;align-items:stretch;gap:6px}
.pt-dest-l1{display:flex;flex-direction:column;align-items:stretch;gap:2px} .pt-dest-l1>b{flex:none} .pt-dest-l1 .pt-end{margin:0} .pt-dest-l1>small{flex:none;color:var(--muted)}
/* 🔗 v0.152.0: compartilhar SÓ este endereço (WhatsApp / copiar link) — fica no fim da coluna do endereço */
.pt-dest-share{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-self:flex-start;align-items:flex-start} .pt-dest-share .pt-btn{white-space:nowrap}
.pt-btn.pt-wa{display:inline-flex;align-items:center;gap:5px;color:#128c7e;border-color:#25d366} .pt-btn.pt-wa:hover{background:#e9fbf1}
.pt-btn.pt-revogar{color:var(--muted);border-color:var(--line)} .pt-btn.pt-revogar:hover{color:var(--vermelho);border-color:var(--vermelho);background:var(--vermelho-bg)}
/* v0.152.2: menu "enviar pra quem" — principal ⭐ primeiro, secundários 👤, outro número */
.pt-wa-menu{margin-top:6px;align-self:flex-start;display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:var(--sombra);max-width:360px}
.pt-wa-menu>small{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:2px 6px}
.pt-wa-menu button{font:inherit;font-size:13px;text-align:left;background:none;border:0;border-radius:8px;padding:8px 10px;cursor:pointer;color:var(--ink);display:flex;justify-content:space-between;gap:10px}
.pt-wa-menu button:hover{background:var(--azul-bg)} .pt-wa-menu button span{color:var(--muted);white-space:nowrap}
.pt-wa-menu .pt-wa-q{font-weight:inherit;display:inline-flex;align-items:center;gap:6px;min-width:0}   /* 27/09: ícone (⭐/pessoa/balão em SVG) + nome num bloco só — o botão é flex com space-between */
.pt-dest-l1>.pt-badge{align-self:flex-start}   /* v0.138.1: em coluna a pílula "1 remessa" esticava a largura toda */
.pt-dest-qs{display:flex;flex-wrap:wrap;gap:8px 14px;border-top:1px dashed var(--line);padding-top:6px}
.pt-dest-q{display:flex;align-items:center;gap:8px;font-size:12.5px} .pt-dest-q span{color:var(--muted);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-dest-q input{width:86px;font:inherit;font-size:14px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;text-align:right}
.pt-dest-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px} .pt-dest-foot .pt-btn{margin-left:auto}
/* leitura da distribuição + rastreio dentro do endereço */
.pt-dest-r{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12.5px;margin:2px 6px 2px 0}
.pt-dest-nota{display:block;width:100%;color:var(--muted);font-size:12px;margin-top:2px}   /* v0.128.0: aviso de endereço único / travado */
/* 📦 v0.130.0: envio DENTRO do endereço — linha 1 (status · transporte · rastreio · Detalhes), grade (produtos um por linha, datas) e detalhes */
.pt-dest-rem{display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.pt-dest-qs .pt-dest-plan{flex:1 1 100%;width:100%}   /* v0.130.3: planejado do endereço no mesmo cartão do envio */
.pt-dest-rem-l1{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12.5px} .pt-dest-rem-l1 .pt-env-abrir{margin-left:auto} .pt-dest-rem-tr{font-weight:600}
.pt-dest-rem-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:13px}
.pt-dest-prods{display:flex;flex-direction:column;gap:3px} .pt-dest-prods b{color:var(--azul);min-width:34px;display:inline-block}
.pt-env-det-in{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)} .pt-env-grid.compacto{grid-template-columns:1fr} .pt-env-d .pt-comp{margin-top:4px}
.pt-env-grid.compacto>div:last-child{order:-1}   /* v0.130.5: Histórico à ESQUERDA, observações/comprovantes à direita (pedido do usuário) */
@media (min-width:901px){ .pt-dest-rem-grid{grid-template-columns:2fr 1fr 1fr 1fr} .pt-env-grid.compacto{grid-template-columns:1fr 1fr} }
/* 👁 ESPELHO (v0.130.0): faixa escura no topo; ações do cliente (sair, senha, endereços) somem — a equipe só consulta */
.pt-esp{position:sticky;top:0;z-index:40;background:#1c2333;color:#fff;padding:8px 14px;font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap} .pt-esp a{color:#9ec1ff;margin-left:auto;font-weight:700} .pt-esp small{color:#c7cdd8}
.pt-espelho .pt-topo{top:37px} .pt-espelho #sair,.pt-espelho .pt-sair-mobile,.pt-espelho #fSenha{display:none!important}   /* v0.233.0: ➕/✏️ de endereço aparecem no espelho (só a equipe edita) */
@media (min-width:901px){ .pt-espelho .pt-side{top:37px} }
.pt-dest-rems{display:flex;flex-direction:column;gap:6px;border-top:1px dashed var(--line);padding-top:6px}
/* v0.130.4: o cartão do envio é bloco (regra acima) — a versão flex-wrap antiga encolhia a grade e os detalhes ao conteúdo */
.pt-dest-rem{font-size:12.5px} .pt-dest-rem code{background:#eef0f5;padding:2px 7px;border-radius:6px} .pt-dest-rem .pt-link{margin:0}
.pt-dest-cab{gap:8px} .pt-dest-cab .pt-btn{margin-left:0}
@media (max-width:720px){ .pt-dest-acs{margin-left:0;width:100%} .pt-dest-busca{max-width:none} }

/* 🚚 v0.140.0: envio real de pedido que saiu antes do Santa Flow (sem remessa) + dica da NF */
.pt-legado{margin-bottom:12px}
.pt-leg-cod{padding:8px 0;border-top:1px dashed var(--line);font-size:12.5px} .pt-leg-cod:last-child{padding-bottom:0}
.pt-leg-cod code{background:#eef0f5;padding:2px 7px;border-radius:6px}
.pt-leg-ult{display:block;color:var(--muted);margin-top:4px}
.pt-nf-dica{color:var(--muted);font-size:11px;display:inline-block;margin-top:4px}

/* 🛵 v0.185.0: corrida Lalamove dentro da remessa (quadro de endereços / tabela de envios) — mesmo desenho da /motoboy, sem a borda do bloco */
.pt-lala-in .pt-prog.en-prog4{margin:10px 0 22px}
.pt-lala-in>.pt-lbl:first-of-type{margin-top:8px}
/* 📦 v0.185.1 (pedido do usuário 16/09): quantidade de VOLUMES em destaque no cabeçalho da remessa/corrida (Santa Flow, /entrega, /motoboy) */
.pt-vol{display:inline-flex;align-items:center;gap:5px;background:#2b6cff;color:#fff;font-weight:800;font-size:13px;border-radius:999px;padding:4px 12px;white-space:nowrap;line-height:1.2}

/* 👥 v0.232.0: VÁRIAS PESSOAS no mesmo endereço (caso excepcional — a equipe liga no pedido). Leitura: uma pessoa por linha
   (nome + telefone à esquerda, o que recebe à direita); editor: uma linha por pessoa que QUEBRA (nunca rolagem lateral). */
.pt-pes-tg.on{background:var(--azul-bg);border-color:var(--azul);color:var(--azul-esc);font-weight:700}
.pt-pes{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.pt-pes-cab{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px}
.pt-pes-acs{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px}
.pt-pes-lista{display:flex;flex-direction:column}
.pt-pes-lin{display:flex;flex-wrap:wrap;gap:4px 14px;padding:6px 0;border-top:1px dashed var(--line);font-size:12.5px}
.pt-pes-lista>.pt-pes-lin:first-child{border-top:0}
.pt-pes-nome{flex:1 1 180px;min-width:0;display:flex;flex-direction:column} .pt-pes-nome small{color:var(--muted)}
.pt-pes-rec{flex:2 1 220px;min-width:0;display:flex;flex-wrap:wrap;gap:2px 12px} .pt-pes-rec b{color:var(--azul)}
.pt-pes-mais>summary{cursor:pointer;color:var(--azul);font-size:12.5px;font-weight:600;padding:6px 0}
.pt-pes-modo{display:flex;flex-wrap:wrap;gap:8px}
.pt-pes-op{flex:1 1 240px;display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:8px 10px;cursor:pointer;font-size:12.5px}
.pt-pes-op.on{border-color:var(--azul);background:var(--azul-bg)}
.pt-pes-op input[type=radio]{width:16px;height:16px;padding:0;margin:2px 0 0;flex:none}
.pt-pes-op span{display:flex;flex-direction:column;gap:2px} .pt-pes-op small{color:var(--muted)}
.pt-pes-avisos{font-size:12.5px}
.pt-pes-ed-lista{display:flex;flex-direction:column;gap:6px}
.pt-pes-ed-lin{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 8px;background:var(--bg);border-radius:8px;padding:8px}
.pt-pes-f{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted);min-width:0}
.pt-pes-f input{font:inherit;font-size:13.5px;color:var(--ink);padding:6px 8px;border:1px solid var(--line);border-radius:8px;width:100%;background:#fff}
.pt-pes-fn{flex:2 1 200px} .pt-pes-ft{flex:1 1 150px} .pt-pes-fq{flex:0 1 110px}
.pt-pes-fq span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .pt-pes-fq input{text-align:right}
.pt-pes-tira{flex:none;margin-bottom:2px}
.pt-pes-somas{display:flex;flex-wrap:wrap;gap:6px}

/* 📄 v0.466.0: box Documentos do pedido (orçamento aprovado + pedido de venda, cada um com Baixar PDF) */
.pt-docs{display:flex;flex-direction:column;margin:4px 0 18px;padding-top:6px;padding-bottom:12px}
.pt-doc{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--borda,#e6e9f0)}
.pt-doc-ic{flex:none;width:36px;height:36px;border-radius:10px;background:#eef3ff;color:#2b6cff;display:inline-flex;align-items:center;justify-content:center}
.pt-doc-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px} .pt-doc-t small{color:var(--muted,#6b7280)}
.pt-doc-dica{color:var(--muted,#6b7280);margin-top:8px;font-size:12px}
