/* Portal do cliente: desenho compartilhado.
   Usado pela página do cliente (acompanhe.nascenteprojetos.com.br) e pela prévia dentro do
   sistema (js/portal.js). Tudo dentro de .pv para não esbarrar no Tailwind.
   O layout responde à LARGURA DO PRÓPRIO .pv (container query), não da janela: assim a prévia
   em "Celular" e em "Computador" mostra exatamente o que o cliente vê em cada aparelho. */
.pv{--az:#172554;--az2:#1e3a8a;--az-claro:#eff6ff;--tx:#1f2937;--cz:#6b7280;--ln:#e5e7eb;--fundo:#f1f5f9;
  --vd:#15803d;--vd-bg:#dcfce7;--am:#92400e;--am-bg:#fef3c7;--og:#9f1239;--og-bg:#ffe4e6;--zap:#16a34a;
  container-type:inline-size;container-name:pv;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--tx);font-size:15px;line-height:1.45;
  background:var(--fundo);min-height:100%}
.pv *{box-sizing:border-box}
.pv a{color:inherit}
.pv-in{max-width:1080px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}

/* Topo */
.pv-topo{background:var(--az);color:#fff;padding:14px 0 18px}
.pv-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.pv-cab-txt{flex:1;min-width:0}
.pv-logo{flex:0 0 auto;height:56px;width:auto;display:block}
.pv-logo-txt{flex:0 0 auto;font-weight:800;letter-spacing:.08em}
.pv-servico{font-size:12px;text-transform:uppercase;letter-spacing:.06em;opacity:.8}
.pv-nome{font-size:21px;font-weight:700;margin:4px 0 4px;line-height:1.25}
.pv-meta{font-size:12px;opacity:.8}
.pv-prog{margin-top:14px}
.pv-prog-txt{font-size:13px;opacity:.9;margin-bottom:6px}
.pv-prog-barra{height:6px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden}
.pv-prog-barra span{display:block;height:100%;background:#4ade80;border-radius:999px}

/* Abas */
.pv-abas{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--ln)}
.pv-abas .pv-in{display:flex;gap:4px}
.pv-aba{flex:1;border:0;background:none;padding:13px 6px 11px;font:600 14px system-ui,sans-serif;color:var(--cz);cursor:pointer;border-bottom:3px solid transparent}
.pv-aba[aria-selected="true"]{color:var(--az);border-bottom-color:var(--az2)}
.pv-painel{display:none;padding:14px 0 24px}
.pv-painel.pv-ativo{display:block}

/* Blocos */
.pv-bloco{background:#fff;border:1px solid var(--ln);border-radius:14px;padding:16px}
.pv-bloco h2{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--cz);margin:0 0 12px;font-weight:700}
.pv-aguardando{border-color:#fcd34d;background:#fffbeb}
.pv-aguardando h2{color:var(--am)}
.pv-lista{list-style:none;margin:0;padding:0}
.pv-lista>li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--ln)}
.pv-lista>li:first-child{border-top:0;padding-top:0}
.pv-lado{font-size:13px;color:var(--cz);white-space:nowrap;text-align:right}
.pv-aguardando .pv-lado{color:var(--am);font-weight:600}
.pv-vazio{font-size:14px;color:var(--cz)}

/* Grade da aba Projeto: celular empilha (alerta, etapas, lateral); computador em 2 colunas */
.pv-grade{display:grid;gap:12px;grid-template-areas:"alerta" "etapas" "lateral"}
.pv-g-alerta{grid-area:alerta}.pv-g-etapas{grid-area:etapas}.pv-g-lateral{grid-area:lateral;display:grid;gap:12px}
.pv-sem-alerta{grid-template-areas:"etapas" "lateral"}

/* Linha do tempo */
.pv-linha{list-style:none;margin:0;padding:0}
.pv-fase{display:flex;gap:12px;position:relative;padding-bottom:20px}
.pv-fase:last-child{padding-bottom:0}
.pv-fase:not(:last-child)::before{content:"";position:absolute;left:11px;top:26px;bottom:2px;width:2px;background:var(--ln)}
.pv-fase.pv-concluida:not(:last-child)::before{background:#86efac}
.pv-marco{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-top:1px}
.pv-concluida .pv-marco{background:#16a34a;color:#fff}
.pv-andamento .pv-marco{background:#fff;border:2px solid var(--az2);box-shadow:0 0 0 4px var(--az-claro)}
.pv-andamento .pv-marco::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--az2)}
/* Etapa/parcela em andamento: arco girando em volta do marcador (só transform: não pesa no celular) */
.pv-andamento .pv-marco{position:relative;border-color:#bfdbfe}
.pv-andamento .pv-marco::before{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid transparent;border-top-color:var(--az2);border-right-color:var(--az2);animation:pv-gira 1.2s linear infinite}
@keyframes pv-gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.pv-andamento .pv-marco::before{animation-duration:3.6s}}
.pv-a-fazer .pv-marco{background:#fff;border:2px solid #d1d5db}
.pv-fase-corpo{flex:1;min-width:0}
.pv-fase-nome{font-weight:600}
.pv-a-fazer .pv-fase-nome{color:#9ca3af;font-weight:500}
.pv-fase-info{font-size:13px;color:var(--cz);margin-top:2px}
.pv-etiqueta{display:inline-block;font-size:12px;font-weight:600;border-radius:12px;padding:3px 10px;margin-top:6px}
.pv-com-nascente{background:var(--az-claro);color:var(--az2)}
.pv-com-cliente{background:var(--am-bg);color:var(--am)}
.pv-com-orgao{background:var(--og-bg);color:var(--og)}

/* Documentos dentro da etapa */
/* Visita técnica marcada (migration 070) */
.pv-visita{margin-top:10px;padding:10px 12px;background:var(--az-claro);border:1px solid #bfdbfe;border-radius:10px}
.pv-visita-tit{font-size:11px;font-weight:700;color:var(--az2);text-transform:uppercase;letter-spacing:.04em}
.pv-visita-quando{font-size:15px;font-weight:700;color:var(--az);margin-top:2px}
.pv-visita-end{font-size:14px;color:var(--tx);margin-top:2px;line-height:1.4}
.pv-docs{list-style:none;margin:10px 0 0;padding:10px 12px;background:#f8fafc;border:1px solid var(--ln);border-radius:10px}
.pv-docs li{display:flex;flex-wrap:wrap;justify-content:space-between;column-gap:10px;row-gap:1px;font-size:14px;padding:5px 0}
.pv-docs li+li{border-top:1px dashed var(--ln)}
.pv-docs-tit{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--cz);font-weight:700;margin:0 0 2px}
.pv-doc-nome{display:flex;gap:8px;align-items:baseline;min-width:0;flex:1 1 auto}
.pv-ico{flex:0 0 auto;font-weight:700}
.pv-doc-ok .pv-ico{color:var(--vd)}
.pv-doc-pend .pv-ico{color:#d97706}
.pv-doc-breve .pv-ico{color:#9ca3af}
.pv-st{font-size:12px;white-space:nowrap;font-weight:600;margin-left:auto}
.pv-doc-ok .pv-st{color:var(--vd)}
.pv-doc-pend .pv-st{color:#b45309}
.pv-doc-breve .pv-st{color:#9ca3af;font-weight:500}
.pv-doc-venc{flex-basis:100%;font-size:12px;color:var(--cz);padding-left:20px}
/* 111: ART do boleto (nº, substituição e botão de baixar) */
.pv-doc-art{flex-basis:100%;font-size:12px;color:var(--cz);padding-left:20px}
.pv-doc-art strong{color:var(--tx);font-family:ui-monospace,Consolas,monospace;font-weight:700}
.pv-doc-troca{flex-basis:100%;margin:6px 0 0 20px;padding:6px 8px;border:1px dashed #cbd5e1;border-radius:8px;font-size:12px;color:var(--cz);background:#fff}
.pv-doc-acao{flex-basis:100%;padding:6px 0 0 20px}
.pv-venc-alerta,.pv-aguardando .pv-lado.pv-venc-alerta{color:var(--og);font-weight:700}

/* Pagamentos */
.pv-numeros{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
.pv-num:first-child{grid-column:1/-1}
.pv-num{background:#fff;border:1px solid var(--ln);border-radius:12px;padding:10px 12px}
.pv-num span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--cz);font-weight:700}
.pv-num strong{display:block;font-size:16px;margin-top:2px;white-space:nowrap}
.pv-num-pago strong{color:var(--vd)}
.pv-barra{height:8px;border-radius:999px;background:var(--ln);overflow:hidden;margin:6px 0 12px}
.pv-barra span{display:block;height:100%;background:#16a34a;border-radius:999px}
.pv-valor{font-weight:600;white-space:nowrap}
.pv-pago{color:var(--vd);font-weight:600;font-size:13px}
.pv-aberto{color:var(--cz);font-size:13px}
/* Nota fiscal da parcela */
.pv-nota{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:6px;font-size:12px;color:var(--cz)}
.pv-nota>span{flex:1 1 100%}  /* texto da nota numa linha, PDF e XML lado a lado embaixo */
.pv-nota-btn{border:1px solid var(--az2);background:#fff;color:var(--az2);border-radius:8px;padding:0 12px;min-height:36px;font:700 13px system-ui,sans-serif;cursor:pointer}
.pv-nota-sec{border-color:var(--ln);color:var(--cz)}
.pv-nota-btn[disabled]{opacity:.6;cursor:default}
.pv-nota-cancelada{color:#94a3b8}
.pv-nota-cancelada s{text-decoration-thickness:1px}
.pv-nota-tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:11px;font-weight:700;text-decoration:none}
.pv-nota .pv-nota-aviso{flex-basis:100%;font-size:11px;color:#94a3b8}
.pv-link{border:0;background:none;padding:0;color:var(--az2);font:600 13px system-ui,sans-serif;cursor:pointer;text-decoration:underline}

/* Dados */
.pv-dados{display:grid;grid-template-columns:1fr;gap:0;margin:0}
.pv-dado{padding:10px 0;border-top:1px solid var(--ln)}
.pv-dado:first-child{border-top:0;padding-top:0}
.pv-dado dt{font-size:12px;color:var(--cz);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.pv-dado dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}

/* WhatsApp */
.pv-zap{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--zap);color:#fff !important;text-decoration:none;
  font:700 14px system-ui,sans-serif;border-radius:10px;padding:11px 16px;width:100%}
.pv-zap svg{width:18px;height:18px;fill:currentColor}
.pv-zap-topo{width:auto;padding:7px 12px;font-size:13px;margin:6px 0 6px auto;align-self:center;display:none;white-space:nowrap}
.pv-ajuda{display:none}
.pv-ajuda p{margin:0 0 10px;font-size:14px}
.pv-barra-zap{position:sticky;bottom:0;z-index:5;background:rgba(241,245,249,.94);padding:8px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border-top:1px solid var(--ln);backdrop-filter:blur(6px)}
.pv-rodape{text-align:center;font-size:12px;color:var(--cz);padding:8px 16px 20px}

/* Visão geral (vários projetos do mesmo responsável) */
.pv-voltar{border:0;background:rgba(255,255,255,.14);color:#fff;font:600 13px system-ui,sans-serif;border-radius:999px;padding:0 14px;min-height:36px;margin:0 0 10px;cursor:pointer}
.pv-geral{display:grid;gap:12px;padding:14px 0 24px}
.pv-geral-tit{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--cz);margin:4px 0 10px;font-weight:700}
.pv-cards{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
.pv-card{display:block;text-decoration:none;background:#fff;border:1px solid var(--ln);border-radius:14px;padding:16px;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .1s ease-out}
.pv-card-topo{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pv-card-serv{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--cz);font-weight:700}
.pv-card-seta{color:var(--az2);font-size:22px;line-height:1;font-weight:700}
.pv-card-nome{font-weight:700;font-size:17px;margin:4px 0 2px;line-height:1.3}
.pv-card-cod{font-size:12px;color:var(--cz)}
.pv-card-prog{margin-top:12px;font-size:13px;color:var(--cz)}
.pv-card-prog .pv-barra{margin:6px 0 0}
.pv-card-fase{margin-top:12px;font-size:14px}
.pv-card-rodape{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--ln);font-size:13px}
.pv-card-pend{color:var(--am);font-weight:700}
.pv-selo-ok{display:inline-block;background:var(--vd-bg);color:var(--vd);font-size:12px;font-weight:700;border-radius:12px;padding:3px 10px;margin-top:10px}
.pv-aguardando li>a{text-decoration:none;min-width:0}
.pv-ag-proj{display:block;font-size:12px;color:var(--am);font-weight:600;margin-top:1px}
.pv-geral .pv-ajuda .pv-zap{width:auto}

/* Toque (celular do cliente): sem o flash cinza no toque, clique na hora (sem esperar o
   double-tap), rótulo de botão não seleciona ao segurar e resposta no dedo. O :hover só vale
   com mouse; no celular ele "grudava" no cartão/botão depois do toque. */
.pv{-webkit-tap-highlight-color:transparent}
.pv button,.pv a{touch-action:manipulation}
.pv button,.pv-zap,.pv-card{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.pv-aba:active,.pv-nota-btn:active,.pv-link:active,.pv-voltar:active{opacity:.7}
.pv-zap:active{filter:brightness(.9)}
.pv-card:active{transform:scale(.985)}
@media (hover:hover) and (pointer:fine){
  .pv-nota-btn:hover{background:var(--az-claro)}
  .pv-voltar:hover{background:rgba(255,255,255,.24)}
  .pv-card:hover{border-color:#93c5fd;box-shadow:0 4px 14px rgba(15,23,42,.08)}
  .pv-previa-ctl button:hover{background:#e2e8f0}
}

/* Resultado das análises do órgão dentro da fase (migration 077) */
.pv-pareceres{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.pv-pareceres li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.pv-par-selo{display:inline-block;font-size:12px;font-weight:700;border-radius:12px;padding:3px 10px}
.pv-par-ok .pv-par-selo{background:var(--vd-bg);color:var(--vd)}
.pv-par-rep .pv-par-selo{background:var(--og-bg);color:var(--og)}
.pv-par-n{font-size:12px;color:var(--cz)}
.pv-par-rodada{flex:1 1 100%;font-size:13px;color:var(--tx);padding-left:4px}

/* Aba Pagamentos: resumo + parcelas como linha do tempo (reusa .pv-linha/.pv-fase/.pv-marco) */
.pv-pg{display:grid;gap:12px}
.pv-pg-rot{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--cz);font-weight:700}
.pv-pg-valor{font-size:24px;font-weight:800;color:var(--vd);margin-top:2px;line-height:1.2}
.pv-pg-valor span{font-size:14px;font-weight:600;color:var(--cz)}
.pv-pg-resumo .pv-barra{margin:10px 0 8px}
.pv-pg-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:13px;color:var(--cz)}
.pv-pg-meta strong{color:var(--tx)}
.pv-pg-linha .pv-fase{padding-bottom:18px}
.pv-pg-linha .pv-fase:last-child{padding-bottom:0}
.pv-a-fazer .pv-marco{color:#9ca3af;font-size:12px}
.pv-pg-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.pv-pg-nomes{min-width:0}
.pv-pg-ord{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--cz);font-weight:700}
.pv-pg-v{font-weight:700;white-space:nowrap}
.pv-a-fazer .pv-pg-v{color:#9ca3af;font-weight:600}
.pv-pg-st{display:inline-block;font-size:12px;font-weight:600;border-radius:12px;padding:3px 10px;margin-top:6px}
.pv-pg-paga{background:var(--vd-bg);color:var(--vd)}
.pv-pg-prox{background:var(--az-claro);color:var(--az2)}
.pv-pg-fut{background:#f3f4f6;color:#6b7280}
.pv-concluida .pv-pg-v{color:var(--vd)}

/* Projeto concluído (migration 096): agradecimento + avaliação no Google + AVCB */
.pv-fim-grade{display:grid;gap:12px;margin-bottom:12px}
.pv-fim{text-align:left}
.pv-fim-ok{width:48px;height:48px;border-radius:50%;background:var(--vd-bg);color:var(--vd);display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.pv-fim-ok svg{width:26px;height:26px}
.pv .pv-fim-tit{font-size:20px;text-transform:none;letter-spacing:0;color:#0f172a;margin:0 0 6px;font-weight:800}
.pv-fim-txt{margin:0 0 12px;font-size:15px;color:#374151;line-height:1.5;max-width:60ch}
.pv-estrelas{display:flex;gap:4px;margin:0 0 12px;color:#f5b301}
.pv-estrelas svg{width:26px;height:26px;fill:currentColor}
.pv-avaliar{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--az2);color:#fff !important;text-decoration:none;
  font:700 15px system-ui,sans-serif;border-radius:12px;padding:13px 16px;min-height:48px}
.pv-avaliar svg{width:18px;height:18px;fill:#fcd34d}
.pv-avaliar-sec{background:#fff;color:var(--az2) !important;border:1.5px solid #c7d2fe;font-size:14px;min-height:44px;padding:10px 14px}
.pv-avaliar-sec svg{fill:#f5b301}
.pv-fim-nota{font-size:12.5px;color:var(--cz);text-align:center;margin-top:8px}
.pv-ja-avaliou{display:flex;align-items:center;gap:8px;background:var(--vd-bg);color:var(--vd);font-weight:700;font-size:14px;border-radius:10px;padding:9px 12px;margin:0 0 10px}
.pv-ja-avaliou svg{width:16px;height:16px;flex:0 0 auto}
.pv-avcb-linha{display:flex;align-items:center;gap:12px}
.pv-avcb-ico{flex:0 0 auto;width:40px;height:40px;border-radius:10px;background:var(--az-claro);color:var(--az2);font:800 11px system-ui,sans-serif;display:flex;align-items:center;justify-content:center}
.pv-avcb-txt{flex:1;min-width:0}
.pv-avcb-txt strong{display:block;font-size:15px}
.pv-avcb-txt small{display:block;font-size:13px;color:var(--cz);overflow-wrap:anywhere}
.pv-card-fim{cursor:pointer}
.pv-card-fim:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
.pv-card-acao{margin-top:12px;padding-top:12px;border-top:1px solid var(--ln);cursor:default;display:grid;gap:0}
.pv-card-acao .pv-ja-avaliou{margin-bottom:8px}
.pv-card-acao .pv-avaliar{margin-bottom:8px}
.pv-card-acao-txt{margin:0 0 10px;font-size:14px;color:#374151;line-height:1.45}
.pv-card-avcb{width:100%}
.pv-avaliar:active{filter:brightness(.92)}

/* Computador */
@container pv (min-width: 860px){
  .pv-fim-grade{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
  .pv-fim-grade.pv-fim-so{grid-template-columns:minmax(0,1.6fr)}
  .pv-fim .pv-avaliar{width:auto;display:inline-flex}
  .pv-fim-nota{text-align:left}
  .pv-in{padding:0 max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left))}
  .pv-topo{padding:18px 0 22px}
  .pv-logo{height:84px}
  .pv-nome{font-size:26px}
  .pv-zap-topo{display:inline-flex}
  .pv-barra-zap{display:none}
  .pv-abas .pv-in{justify-content:flex-start}
  .pv-aba{flex:0 0 auto;padding:14px 18px 12px}
  .pv-painel{padding:20px 0 32px}
  .pv-grade{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"etapas alerta" "etapas lateral";align-items:start}
  .pv-grade.pv-sem-alerta{grid-template-rows:auto;grid-template-areas:"etapas lateral"}
  .pv-ajuda{display:block}
  .pv-numeros{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pv-pg{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:start}
  .pv-pg-valor{font-size:28px}
  .pv-num:first-child{grid-column:auto}
  .pv-dados{grid-template-columns:1fr 1fr;column-gap:32px}
  .pv-dado:nth-child(2){border-top:0;padding-top:0}
  .pv-num strong{font-size:20px}
  .pv-nota>span{flex:0 1 auto}
  .pv-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-geral{padding:20px 0 32px}
}

/* Prévia ao vivo na aba Cliente do sistema interno (js/portal.js + index.html #main-view-cliente) */
.pv-previa-barra{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 24px;background:#fff;border-bottom:1px solid #e5e7eb;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.pv-previa-tit{font-size:17px;font-weight:700;color:#334155}
.pv-previa-tit i{color:#1e3a8a;margin-right:6px}
.pv-previa-sub{font-size:12px;color:#94a3b8;margin-top:2px}
.pv-previa-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pv-previa-grupo{display:inline-flex;flex-wrap:wrap;gap:4px;background:#f1f5f9;border-radius:10px;padding:3px}
.pv-previa-ctl button{border:0;background:transparent;border-radius:8px;padding:6px 10px;cursor:pointer;font:700 12px system-ui,sans-serif;color:#334155;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-previa-ctl button.pv-on{background:#172554;color:#fff}
.pv-previa-ctl>button{background:#f1f5f9}
.pv-previa-fundo{flex:1;min-height:0;overflow:auto;padding:24px}
.pv-previa-caixa{max-width:420px;margin:0 auto;border-radius:16px;overflow:hidden;overflow:clip;box-shadow:0 12px 36px rgba(15,23,42,.18);background:#f1f5f9;transition:max-width .2s ease}
.pv-previa-caixa.pv-previa-pc{max-width:1120px}

/* Janelas do sistema interno (vincular responsável) */
.pv-modal{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:9999;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:24px 12px}
.pv-modal-caixa{background:#f1f5f9;border-radius:16px;width:100%;max-width:420px;box-shadow:0 20px 50px rgba(0,0,0,.3);overflow:hidden;overflow:clip;transition:max-width .2s ease}
.pv-modal-caixa.pv-modal-pc{max-width:1120px}
.pv-modal-topo{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;background:#fff;border-bottom:1px solid #e5e7eb;font:600 13px system-ui,sans-serif;color:#334155}
.pv-modal-topo button{border:0;background:#e2e8f0;border-radius:8px;padding:5px 10px;cursor:pointer;font:700 12px system-ui,sans-serif;color:#334155}
.pv-modal-topo button.pv-on{background:#172554;color:#fff}
