/* assets-painel/patrimonial-textos.css
   Mensagens Prontas e Formulários de Cotação (pages/patrimonial-textos.js) e a faixa de meses dos
   Avisos (pages/patrimonial.js), pedidos da Andressa em 29/09/2026.
   Folha própria, carregada DEPOIS do painel.css, pelo mesmo motivo do abas-setor.css: outras
   sessões mexem no painel.css o tempo todo. Só tokens do painel (DESIGN.md); cor solta aqui só nos
   tons de estado, sempre redefinidos no tema escuro. Movimento: só transform e opacity, cascata em
   passos de .03s travada no 6º item, e tudo desligado em prefers-reduced-motion.
   Entrada com `backwards`, nunca `both`: o estado final de uma animação `both` prende o transform
   e mata o levantar do hover. */

/* ── Nome do segurado (Mensagens Prontas) ─────────────────────────────────── */
.ptx-nome { position:relative; overflow:hidden; display:flex; align-items:center; gap:14px; margin:0 0 14px;
  padding:14px 16px 14px 18px; background:var(--bg-card); border:1px solid var(--border-color); border-radius:14px;
  box-shadow:var(--shadow); animation:fadeInUp .36s var(--pt-ease) backwards; }
.ptx-nome::before { content:''; position:absolute; inset:0 auto 0 0; width:4px; background:linear-gradient(180deg,#16A34A,#0891B2); }
.ptx-nome-ic { width:42px; height:42px; flex-shrink:0; border-radius:12px; display:grid; place-items:center;
  background:rgba(22,163,74,.12); color:#15803D; }
.ptx-nome-ic svg { width:21px; height:21px; }
.ptx-nome-tx { flex:1; min-width:0; }
.ptx-rot { display:block; margin-bottom:5px; font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); }
.ptx-nome input { width:100%; box-sizing:border-box; padding:10px 12px; border-radius:10px; border:1px solid var(--border-color);
  background:var(--bg-page); color:var(--text-main); font:700 15px/1.3 inherit; letter-spacing:.01em; }
.ptx-nome input::placeholder { font-weight:500; color:var(--text-muted); }
.ptx-nome input:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,79,156,.14); }
.ptx-nome.cheio input { border-color:rgba(22,163,74,.55); }
.ptx-nome-s { margin-top:6px; font-size:11.5px; color:var(--text-muted); }
.ptx-nome.cheio .ptx-nome-s { color:#15803D; font-weight:600; }
.ptx-nome-x { width:32px; height:32px; flex-shrink:0; display:grid; place-items:center; border:1px solid var(--border-color); border-radius:9px;
  background:var(--bg-card); color:var(--text-muted); cursor:pointer; opacity:0; transform:scale(.8); pointer-events:none;
  transition:opacity .18s var(--pt-ease), transform .18s var(--pt-ease); }
.ptx-nome.cheio .ptx-nome-x { opacity:1; transform:none; pointer-events:auto; }
.ptx-nome-x svg { width:14px; height:14px; }
.ptx-nome.treme { animation:ptxTreme .42s var(--pt-ease); }
@keyframes ptxTreme { 0%,100% { transform:translateX(0); } 20% { transform:translateX(-7px); } 40% { transform:translateX(6px); }
  60% { transform:translateX(-4px); } 80% { transform:translateX(2px); } }

/* ── Busca, formato de cópia e lixeira ────────────────────────────────────── */
.ptx-barra { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:0 0 6px; }
.ptx-busca { position:relative; display:block; flex:1; min-width:220px; max-width:440px; margin:0; }
.ptx-busca svg { position:absolute; left:11px; top:50%; width:15px; height:15px; transform:translateY(-50%); color:var(--text-muted); pointer-events:none; }
.ptx-busca input { width:100%; box-sizing:border-box; height:38px; padding:0 12px 0 34px; border-radius:10px; border:1px solid var(--border-color);
  background:var(--bg-card); color:var(--text-main); font:400 12.5px/1.3 inherit; }
.ptx-busca input:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,79,156,.14); }
.ptx-barra .ptx-bt.lix { margin-left:auto; height:38px; }
.ptx-barra .ptx-bt.lix[aria-pressed="true"] { border-color:var(--blue); color:var(--blue); background:var(--blue-light); }

/* Escolha WhatsApp / E-mail: a pílula desliza entre as duas (só transform). */
.ptx-fmt { display:inline-flex; align-items:center; gap:4px; height:38px; box-sizing:border-box; padding:3px; border-radius:11px;
  border:1px solid var(--border-color); background:var(--bg-card); }
.ptx-fmt-r { padding:0 6px 0 8px; font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); white-space:nowrap; }
.ptx-fmt-op { position:relative; display:grid; grid-template-columns:1fr 1fr; height:100%; }
.ptx-fmt-pill { position:absolute; inset:0 auto 0 0; width:50%; border-radius:8px; background:linear-gradient(135deg,#1A4F9C,#2563EB);
  box-shadow:0 3px 10px rgba(26,79,156,.25); transition:transform .28s var(--pt-ease); }
.ptx-fmt[data-f="email"] .ptx-fmt-pill { transform:translateX(100%); }
.ptx-fmt-bt { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:100px; padding:0 12px;
  border:0; border-radius:8px; background:transparent; color:var(--text-muted); font:700 12px/1 inherit; white-space:nowrap; cursor:pointer; transition:color .2s ease; }
.ptx-fmt-bt svg { width:14px; height:14px; }
.ptx-fmt-bt[aria-checked="true"] { color:#fff; }
.ptx-fmt-bt:not([aria-checked="true"]):hover { color:var(--text-main); }

/* ── Seções ───────────────────────────────────────────────────────────────── */
.ptx-sec { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin:18px 2px 10px; scroll-margin-top:80px; }
.ptx-sec-t { font-size:13px; font-weight:800; letter-spacing:-.01em; color:var(--text-main); }
.ptx-sec-n { padding:1px 8px; border-radius:999px; background:var(--blue-light); color:var(--blue); font-size:10.5px; font-weight:800; font-variant-numeric:tabular-nums; }
.ptx-sec-s { font-size:11.5px; color:var(--text-muted); }

/* ── Botões ───────────────────────────────────────────────────────────────── */
.ptx-bt { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 11px; border-radius:9px; border:1px solid var(--border-color);
  background:var(--bg-card); color:var(--text-main); font:700 12px/1 inherit; cursor:pointer; white-space:nowrap;
  transition:transform .15s var(--pt-ease), background-color .15s ease; }
.ptx-bt:hover { background:var(--bg-hover); }
.ptx-bt:active { transform:scale(.97); }
.ptx-bt svg { width:14px; height:14px; flex-shrink:0; }
.ptx-bt.ico { width:32px; padding:0; justify-content:center; }
.ptx-bt svg.ptx-seta { width:12px; height:12px; margin-left:-2px; transition:transform .22s var(--pt-ease); }
.ptx-bt[aria-expanded="true"] svg.ptx-seta { transform:rotate(180deg); }
.ptx-bt:focus-visible, .ptx-copiar:focus-visible, .ptx-nome-x:focus-visible, .ptx-fmt-bt:focus-visible, .ptx-card-novo:focus-visible,
.ptx-img-ver:focus-visible, .ptx-ed-img-x:focus-visible, .ptx-ed-img-add:focus-visible,
.avm-bt:focus-visible, .avm-nome:focus-visible, .avm-env-mes button:focus-visible, .avm-ver:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }

/* Copiar: o botão que a equipe mais aperta. Vira "Copiado" em verde, o ícone salta e um brilho
   atravessa; a linha inteira ganha o mesmo brilho, para o olho saber QUAL foi copiada. */
.ptx-copiar { position:relative; overflow:hidden; display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 14px;
  border:0; border-radius:9px; background:linear-gradient(135deg,#1A4F9C,#2563EB); color:#fff; font:800 12px/1 inherit;
  cursor:pointer; white-space:nowrap; box-shadow:0 4px 12px rgba(26,79,156,.25); transition:transform .15s var(--pt-ease); }
.ptx-copiar:hover { transform:translateY(-1px); }
.ptx-copiar:active { transform:scale(.96); }
.ptx-copiar svg { width:14px; height:14px; flex-shrink:0; }
.ptx-copiar .ptx-i-ok { display:none; }
.ptx-copiar.ok { background:linear-gradient(135deg,#065F46,#047857); box-shadow:0 4px 12px rgba(4,120,87,.28); }
.ptx-copiar.ok .ptx-i-cp { display:none; }
.ptx-copiar.ok .ptx-i-ok { display:inline-block; animation:ptxPop .36s var(--pt-ease) both; }
.ptx-copiar::after { content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.45) 50%,transparent 75%); transform:translateX(-130%); }
.ptx-copiar.ok::after { animation:ptxBrilho .7s var(--pt-ease) forwards; }
@keyframes ptxPop { from { opacity:0; transform:scale(.4) rotate(-14deg); } to { opacity:1; transform:none; } }
@keyframes ptxBrilho { to { transform:translateX(130%); } }

/* ── Linha de mensagem (uma por companhia) ────────────────────────────────── */
.ptx-linhas { display:grid; gap:8px; }
.ptx-linha { position:relative; overflow:hidden; background:var(--bg-card); border:1px solid var(--border-color); border-radius:14px;
  animation:fadeInUp .38s var(--pt-ease) backwards; animation-delay:calc(min(var(--i, 0), 5) * .03s);
  transition:transform .2s var(--pt-ease), border-color .2s ease; }
.ptx-linha:hover { transform:translateY(-1px); border-color:rgba(26,79,156,.3); }
.ptx-linha.aberta { border-color:rgba(26,79,156,.4); }
.ptx-linha.copiada::after, .ptx-card.copiada::after { content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(100deg,transparent 30%,rgba(16,185,129,.18) 50%,transparent 70%); transform:translateX(-100%);
  animation:ptxBrilho .85s var(--pt-ease) forwards; }
.ptx-linha-top { display:flex; align-items:center; gap:12px; padding:11px 12px 11px 14px; }
.ptx-av { width:38px; height:38px; flex-shrink:0; border-radius:11px; display:grid; place-items:center; background:var(--av, #475569);
  color:#fff; font-size:12.5px; font-weight:800; letter-spacing:.02em; box-shadow:inset 0 0 0 1px rgba(255,255,255,.14); }
.ptx-av svg { width:18px; height:18px; }
.ptx-linha-tx { flex:1; min-width:0; }
.ptx-linha-t { display:flex; align-items:center; gap:7px; flex-wrap:wrap; font-size:13.5px; font-weight:800; color:var(--text-main); }
.ptx-linha-s { margin-top:2px; font-size:11.5px; color:var(--text-muted); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.ptx-linha-ac { display:flex; gap:6px; align-items:center; flex-shrink:0; }
.ptx-linha-corpo { padding:14px 18px 16px 64px; border-top:1px dashed var(--border-color); animation:fadeInUp .3s var(--pt-ease) backwards; }
.ptx-chip-int { padding:2px 7px; border-radius:6px; font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  background:rgba(245,158,11,.14); color:#B45309; border:1px solid rgba(245,158,11,.35); }
/* Mensagem de cobrança no Material de Apoio: também está na aba Cobrança (16/10/2026). */
.ptx-chip-cob { display:inline-flex; align-items:center; gap:4px; padding:2px 8px 2px 6px; border-radius:6px; font-size:9.5px; font-weight:800;
  letter-spacing:.04em; background:rgba(5,150,105,.12); color:#047857; border:1px solid rgba(5,150,105,.32); white-space:nowrap; }
.ptx-chip-cob svg { width:11px; height:11px; flex-shrink:0; }
body.dark .ptx-chip-cob { color:#6EE7B7; background:rgba(16,185,129,.14); border-color:rgba(16,185,129,.35); }
/* Na Cobrança o quadro do nome só aparece quando alguma mensagem usa o nome. */
.ptx-nome[hidden] { display:none; }
.ptx-assina { color:var(--text-muted); }
/* Redesenho por busca, por resposta do servidor ou depois de salvar: sem a cascata de entrada. */
.ptx-quieto .ptx-linha, .ptx-quieto .ptx-card { animation:none; }

/* ── Texto formatado (mensagem e prévia) ─────────────────────────────────── */
.ptx-msg { max-width:780px; font-size:12.5px; line-height:1.6; color:var(--text-main); }
.ptx-msg .ptx-l { min-height:1.6em; overflow-wrap:anywhere; }
.ptx-msg .ptx-l.b { position:relative; padding-left:16px; }
.ptx-msg .ptx-l.b::before { content:''; position:absolute; left:4px; top:.72em; width:5px; height:5px; border-radius:50%; background:var(--blue); }
.ptx-msg a, .ptx-form a { color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.ptx-var { display:inline-block; padding:0 6px; border-radius:6px; background:rgba(22,163,74,.13); color:#166534; font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(22,163,74,.35); }
.ptx-var.vazio { background:rgba(245,158,11,.14); color:#B45309; box-shadow:inset 0 0 0 1px rgba(245,158,11,.4); font-weight:700; }
/* Formato E-mail numa mensagem com emoji: a linha aberta mostra o texto sem eles e diz onde foram
   (o balão verde é o do botão WhatsApp lá em cima). */
.ptx-emo-nota { display:inline-flex; align-items:center; gap:7px; margin-top:12px; padding:6px 11px 6px 9px; border-radius:9px;
  background:var(--bg-page); border:1px solid var(--border-color); font-size:11.5px; line-height:1.35; color:var(--text-muted); }
.ptx-emo-nota svg { width:14px; height:14px; flex-shrink:0; color:#15803D; }

/* ── Imagens da mensagem (pedido de 06/10/2026) ───────────────────────────── */
.ptx-chip-img { display:inline-flex; align-items:center; gap:4px; padding:2px 7px; border-radius:6px; font-size:9.5px; font-weight:800;
  letter-spacing:.06em; text-transform:uppercase; background:var(--blue-light); color:var(--blue); border:1px solid rgba(26,79,156,.22); }
.ptx-chip-img svg { width:11px; height:11px; }
.ptx-imgs { max-width:780px; margin-top:14px; }
.ptx-msg + .ptx-imgs { padding-top:12px; border-top:1px dashed var(--border-color); }
.ptx-imgs:first-child { margin-top:0; }
.ptx-imgs-cab { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-bottom:10px; font-size:12px; font-weight:800; color:var(--text-main); }
.ptx-imgs-cab svg { width:15px; height:15px; align-self:center; color:var(--blue); }
.ptx-imgs-cab small { font-size:11.5px; font-weight:500; color:var(--text-muted); }
.ptx-imgs-lista { display:flex; flex-wrap:wrap; gap:12px; }
.ptx-img { display:flex; flex-direction:column; gap:8px; width:228px; margin:0; padding:10px; box-sizing:border-box; border-radius:12px;
  background:var(--bg-card); border:1px solid var(--border-color); }
/* A caixa da imagem já nasce na proporção dela (largura e altura vêm na lista): nada pula quando chega. */
.ptx-img-ver { position:relative; display:grid; place-items:center; width:100%; aspect-ratio:var(--ar, 4/3); max-height:300px; padding:0;
  overflow:hidden; border:1px solid var(--border-color); border-radius:9px; background:var(--bg-page); cursor:zoom-in; }
/* Presa à caixa (absoluta): com a altura limitada pelo max-height, o 100% de altura comum não
   acompanhava, e no celular a imagem saía cortada embaixo. */
.ptx-img-ver img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:0; transition:opacity .25s ease; }
.ptx-img.pronta .ptx-img-ver img { opacity:1; }
.ptx-img:not(.pronta):not(.erro) .ptx-img-ver::after { content:''; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(148,163,184,.18),transparent); animation:ptxCarrega 1.2s linear infinite; }
.ptx-img-falha { display:none; position:absolute; inset:0; padding:12px; place-content:center; text-align:center; font-size:11.5px; color:var(--text-muted); }
.ptx-img.erro .ptx-img-ver { cursor:pointer; }
.ptx-img.erro .ptx-img-falha { display:grid; }
.ptx-img figcaption { display:flex; flex-direction:column; gap:1px; min-width:0; }
.ptx-img-nome { font-size:11.5px; font-weight:700; color:var(--text-main); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.ptx-img-tam { font-size:10.5px; color:var(--text-muted); font-variant-numeric:tabular-nums; }
.ptx-img-ac { display:flex; gap:6px; }
.ptx-img-ac .ptx-img-cp { flex:1; justify-content:center; }
.ptx-bt.ok { border-color:rgba(4,120,87,.45); background:rgba(16,185,129,.1); color:#047857; }

/* Editor: a área das imagens fica embaixo do texto e da prévia, e acende quando um arquivo passa por cima. */
.ptx-ed-imgs { margin-top:14px; padding:12px 14px 14px; border-radius:12px; border:1px dashed var(--border-color); background:var(--bg-page);
  transition:border-color .15s ease, background-color .15s ease; }
.ptx-ed-imgs.arrastando { border-color:var(--blue); background:var(--blue-light); }
.ptx-ed-imgs-cab { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.ptx-ed-imgs-cab .ptx-rot { margin:0; }
.ptx-ed-imgs-s { font-size:11px; color:var(--text-muted); }
.ptx-ed-imgs-lista { display:flex; flex-wrap:wrap; gap:12px; }
.ptx-ed-img { position:relative; width:132px; display:flex; flex-direction:column; gap:6px; }
.ptx-ed-img-q { width:132px; height:100px; box-sizing:border-box; display:grid; place-items:center; overflow:hidden; border-radius:9px;
  border:1px solid var(--border-color); background:var(--bg-card); }
.ptx-ed-img-q img { max-width:100%; max-height:100%; object-fit:contain; }
.ptx-ed-img.nova .ptx-ed-img-q { border-color:rgba(26,79,156,.5); box-shadow:0 0 0 3px rgba(26,79,156,.1); }
.ptx-ed-img-x { position:absolute; top:-7px; right:-7px; width:24px; height:24px; display:grid; place-items:center; padding:0; border-radius:50%;
  border:1px solid var(--border-color); background:var(--bg-card); color:var(--text-muted); cursor:pointer; box-shadow:var(--shadow); }
.ptx-ed-img-x:hover { color:#B91C1C; border-color:rgba(185,28,28,.4); }
.ptx-ed-img-x svg { width:11px; height:11px; }
.ptx-ed-img-n { display:flex; flex-direction:column; min-width:0; font-size:11px; color:var(--text-main); }
.ptx-ed-img-n span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-weight:700; }
.ptx-ed-img-n small { font-size:10.5px; color:var(--text-muted); }
.ptx-ed-img-add { width:132px; height:100px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  border:1px dashed var(--border-color); border-radius:9px; background:var(--bg-card); color:var(--text-muted); font:800 11.5px/1.2 inherit; cursor:pointer;
  transition:color .15s ease, border-color .15s ease; }
.ptx-ed-img-add:hover { color:var(--blue); border-color:rgba(26,79,156,.45); }
.ptx-ed-img-add .ptx-mais { width:30px; height:30px; border-radius:10px; display:grid; place-items:center; background:var(--blue-light); color:var(--blue);
  transition:transform .25s var(--pt-ease); }
.ptx-ed-img-add:hover .ptx-mais { transform:rotate(90deg) scale(1.06); }
.ptx-ed-img-add .ptx-mais svg { width:16px; height:16px; }
.ptx-ed-pv-imgs { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.ptx-ed-pv-imgs img { max-width:200px; max-height:220px; border-radius:8px; border:1px solid var(--border-color); background:var(--bg-card); }
#ptx-ed-pv-txt:empty + #ptx-ed-pv-img .ptx-ed-pv-imgs { margin-top:0; }

/* ── Formulários: cartões ─────────────────────────────────────────────────── */
.ptx-grade { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px; margin-top:14px; }
.ptx-card { position:relative; overflow:hidden; display:flex; flex-direction:column; gap:10px; padding:16px; background:var(--bg-card);
  border:1px solid var(--border-color); border-radius:var(--card-radius, 16px); animation:fadeInUp .4s var(--pt-ease) backwards;
  animation-delay:calc(min(var(--i, 0), 5) * .03s); transition:transform .2s var(--pt-ease), border-color .2s ease; }
.ptx-card:hover { transform:translateY(-2px); border-color:color-mix(in srgb, var(--rc, #1A4F9C) 40%, var(--border-color)); }
.ptx-card::before { content:''; position:absolute; inset:0 0 auto 0; height:3px; background:var(--rc, #1A4F9C); }
.ptx-card-top { display:flex; gap:12px; align-items:flex-start; }
.ptx-card-ic { width:42px; height:42px; flex-shrink:0; border-radius:12px; display:grid; place-items:center; color:#fff;
  background:linear-gradient(135deg, color-mix(in srgb, var(--rc, #1A4F9C) 68%, #0F172A), var(--rc, #1A4F9C));
  box-shadow:0 6px 14px color-mix(in srgb, var(--rc, #1A4F9C) 28%, transparent); }
.ptx-card-ic svg { width:21px; height:21px; }
.ptx-card h3 { margin:0; font-size:14.5px; font-weight:800; letter-spacing:-.01em; color:var(--text-main); }
.ptx-card p { margin:3px 0 0; font-size:11.5px; line-height:1.4; color:var(--text-muted); }
.ptx-card-meta { display:flex; gap:8px; flex-wrap:wrap; align-items:center; font-size:10.5px; color:var(--text-muted); }
.ptx-chip { padding:2px 8px; border-radius:999px; font-size:10.5px; font-weight:800; font-variant-numeric:tabular-nums;
  background:color-mix(in srgb, var(--rc, #1A4F9C) 12%, transparent); color:color-mix(in srgb, var(--rc, #1A4F9C) 78%, var(--text-main));
  border:1px solid color-mix(in srgb, var(--rc, #1A4F9C) 30%, transparent); }
.ptx-card-previa { position:relative; max-height:122px; overflow:hidden; padding:10px 12px; border-radius:10px; background:var(--bg-page);
  border:1px solid var(--border-color); font-size:11.5px; line-height:1.55; }
.ptx-card-previa .ptx-form { font-size:11.5px; color:var(--text-muted); }
.ptx-card-previa::after { content:''; position:absolute; inset:auto 0 0 0; height:44px; background:linear-gradient(rgba(0,0,0,0), var(--bg-page)); }
.ptx-card-ac { display:flex; gap:6px; align-items:center; margin-top:auto; }
.ptx-card-ac .ptx-copiar { margin-left:auto; }
.ptx-card-novo { min-height:196px; justify-content:center; align-items:center; gap:8px; border-style:dashed; background:transparent;
  color:var(--text-muted); font:800 13px/1.3 inherit; text-align:center; cursor:pointer; }
.ptx-card-novo::before { display:none; }
.ptx-card-novo:hover { color:var(--blue); border-color:rgba(26,79,156,.45); }
.ptx-card-novo small { max-width:220px; font-size:11.5px; font-weight:500; color:var(--text-muted); }
.ptx-card-novo .ptx-mais { width:44px; height:44px; border-radius:14px; display:grid; place-items:center; background:var(--blue-light); color:var(--blue);
  transition:transform .25s var(--pt-ease); }
.ptx-card-novo:hover .ptx-mais { transform:rotate(90deg) scale(1.06); }
.ptx-card-novo .ptx-mais svg { width:20px; height:20px; }

/* ── Formulário formatado (leitura, prévia do cartão e do editor) ───────────── */
.ptx-form { font-size:12.5px; line-height:1.55; color:var(--text-main); }
.ptx-f-h { margin:14px 0 6px; font-size:11.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--blue); }
.ptx-f-h:first-child { margin-top:0; }
.ptx-f-q { position:relative; margin:10px 0 4px; padding-left:16px; font-weight:700; }
.ptx-f-q:first-child { margin-top:0; }
.ptx-f-q::before { content:''; position:absolute; left:3px; top:.62em; width:6px; height:6px; border-radius:2px; background:var(--blue); transform:rotate(45deg); }
.ptx-f-q.num { padding-left:30px; }
.ptx-f-q.num::before { display:none; }
.ptx-f-n { position:absolute; left:0; top:1px; min-width:22px; height:20px; padding:0 4px; box-sizing:border-box; border-radius:6px;
  display:grid; place-items:center; background:var(--blue-light); color:var(--blue); font-size:10.5px; font-weight:800; font-variant-numeric:tabular-nums; }
.ptx-f-ops { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:4px 0 2px 16px; }
.ptx-f-ops .ptx-f-rot { font-weight:600; color:var(--text-main); margin-right:2px; }
.ptx-f-op { display:inline-flex; align-items:center; gap:6px; padding:3px 10px 3px 6px; border-radius:999px; border:1px solid var(--border-color);
  background:var(--bg-card); font-size:11.5px; }
.ptx-f-box { width:12px; height:12px; flex-shrink:0; border-radius:4px; border:1.6px solid var(--text-muted); }
.ptx-f-l { margin:3px 0; overflow-wrap:anywhere; }
.ptx-f-l.sub { margin-top:8px; font-weight:700; }
.ptx-f-l.campo { display:flex; align-items:baseline; gap:8px; }
.ptx-f-l.campo::after { content:''; flex:1; min-width:36px; border-bottom:1px dotted var(--border-color); }
.ptx-f-rs { font-weight:800; color:var(--text-muted); font-variant-numeric:tabular-nums; }
.ptx-f-sp { height:8px; }

/* ── Janelas: editor e leitura (estrutura .modal padrão do painel) ────────── */
.ptx-modal .modal-close svg { width:15px; height:15px; }
.ptx-modal .modal-footer { align-items:center; }
.ptx-modal .modal-footer .btn { display:inline-flex; align-items:center; gap:6px; }
.ptx-modal .modal-footer .btn svg { width:14px; height:14px; }
.ptx-rod-esq { margin-right:auto; }
.ptx-rod-perigo { color:#B91C1C; }
.ptx-rod-quem { font-size:11.5px; color:var(--text-muted); }
.ptx-rod-dica { font-size:11px; color:var(--text-muted); margin-right:4px; }
.ptx-ler-cab { position:relative; z-index:1; display:flex; align-items:center; gap:12px; min-width:0; }
.ptx-ler-cab .ptx-card-ic { width:38px; height:38px; background:rgba(255,255,255,.16); box-shadow:inset 0 0 0 1px rgba(255,255,255,.22); }
.ptx-ler-cab .ptx-card-ic svg { width:19px; height:19px; }
.ptx-ler-sub { margin-top:2px; font-size:12px; color:rgba(255,255,255,.8); }
.ptx-leitura { max-width:760px; animation:fadeInUp .34s var(--pt-ease) backwards; }

.ptx-ed-grade { display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(0, .85fr) minmax(0, 1.3fr); gap:12px; margin-bottom:14px;
  animation:fadeInUp .34s var(--pt-ease) backwards; }
.ptx-ed { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:18px; animation:fadeInUp .34s var(--pt-ease) .05s backwards; }
.ptx-ed-col { min-width:0; display:flex; flex-direction:column; }
.ptx-modal input, .ptx-modal select, .ptx-modal textarea { width:100%; box-sizing:border-box; padding:9px 11px; border-radius:9px;
  border:1px solid var(--border-color); background:var(--bg-page); color:var(--text-main); font:400 12.5px/1.45 inherit;
  transition:border-color .16s, box-shadow .16s; }
.ptx-modal input:focus, .ptx-modal select:focus, .ptx-modal textarea:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,79,156,.14); }
.ptx-ed-ferr { display:flex; gap:6px; flex-wrap:wrap; align-items:center; min-height:32px; margin:0 0 8px; }
.ptx-ed-pt { justify-content:space-between; }
.ptx-ed-pt .ptx-rot { margin:0; }
.ptx-ed-pt-s { font-size:11.5px; color:var(--text-muted); }
.ptx-ed textarea { height:clamp(300px, 50vh, 560px); resize:vertical; line-height:1.55; }
.ptx-ed-previa { height:clamp(300px, 50vh, 560px); box-sizing:border-box; overflow:auto; padding:14px 16px; border-radius:12px;
  background:var(--bg-page); border:1px solid var(--border-color); }
.ptx-ed-vazio { font-size:12px; color:var(--text-muted); }
.ptx-ed-dica { margin-top:8px; font-size:11px; line-height:1.55; color:var(--text-muted); }
.ptx-ed-dica code { padding:0 4px; border-radius:4px; background:var(--bg-page); border:1px solid var(--border-color); font-size:10.5px; color:var(--text-main); }
.ptx-ed-quem { margin-top:12px; font-size:11px; color:var(--text-muted); }

/* ── Lixeira, vazio, carregando ───────────────────────────────────────────── */
.ptx-lix { margin-top:16px; padding:12px 14px; border-radius:14px; background:var(--bg-card); border:1px dashed var(--border-color);
  animation:fadeInUp .3s var(--pt-ease) backwards; }
.ptx-lix-t { font-size:12px; font-weight:800; color:var(--text-main); margin-bottom:6px; }
.ptx-lix-i { display:flex; align-items:center; gap:10px; padding:8px 0; border-top:1px solid var(--border-color); font-size:12px; color:var(--text-main); }
.ptx-lix-t + .ptx-lix-i { border-top:0; }
.ptx-lix-tx { flex:1; min-width:0; }
.ptx-lix-i small { color:var(--text-muted); }
.ptx-vazio { padding:40px 16px; text-align:center; color:var(--text-muted); background:var(--bg-card); border:1px dashed var(--border-color); border-radius:14px; font-size:12.5px; }
.ptx-vazio b { display:block; margin-bottom:4px; color:var(--text-main); font-size:13px; }
.ptx-esq { display:grid; gap:8px; margin-top:14px; }
.ptx-esq.grade { grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px; }
.ptx-esq-b { position:relative; overflow:hidden; height:62px; border-radius:14px; background:var(--bg-card); border:1px solid var(--border-color); }
.ptx-esq.grade .ptx-esq-b { height:236px; border-radius:16px; }
.ptx-esq-b::after { content:''; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(148,163,184,.14),transparent); animation:ptxCarrega 1.2s linear infinite; }
@keyframes ptxCarrega { to { transform:translateX(100%); } }
.ptx-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ── Avisos: meses da lista e os já enviados ──────────────────────────────── */
.avm { margin:0 0 12px; }
.avm-lista { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.avm-rot { font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); margin-right:2px; }
.avm-mes { display:flex; align-items:center; gap:10px; padding:5px 6px 5px 12px; background:var(--bg-card); border:1px solid var(--border-color);
  border-radius:12px; animation:fadeInUp .35s var(--pt-ease) backwards; animation-delay:calc(min(var(--i, 0), 5) * .03s);
  transition:border-color .2s ease; }
.avm-mes.ativo { border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,79,156,.12); }
.avm-nome { display:flex; align-items:baseline; gap:5px; padding:0; border:0; background:none; color:var(--text-main); cursor:pointer; font-family:inherit; }
.avm-mes-n { font-size:13px; font-weight:800; }
.avm-mes-a { font-size:11px; font-weight:700; color:var(--text-muted); }
.avm-qt { font-size:11.5px; color:var(--text-muted); }
.avm-qt b { color:var(--text-main); font-variant-numeric:tabular-nums; }
.avm-bt { display:inline-flex; align-items:center; gap:5px; height:28px; padding:0 10px; border-radius:8px; border:1px solid rgba(16,185,129,.4);
  background:rgba(16,185,129,.1); color:#047857; font:800 11.5px/1 inherit; cursor:pointer; transition:transform .15s var(--pt-ease); }
.avm-bt:hover { transform:translateY(-1px); }
.avm-bt:active { transform:scale(.97); }
.avm-bt svg { width:13px; height:13px; }
.avm-vazio { padding:6px 2px; font-size:12px; color:var(--text-muted); }
.avm-env { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:8px; padding:8px 12px; border-radius:12px;
  background:rgba(16,185,129,.08); border:1px solid rgba(16,185,129,.28); font-size:11.5px; color:var(--text-main); animation:fadeInUp .3s var(--pt-ease) backwards; }
.avm-env-ic { width:20px; height:20px; border-radius:50%; display:grid; place-items:center; background:#047857; color:#fff; }
.avm-env-ic svg { width:12px; height:12px; }
.avm-env-t { font-weight:800; }
.avm-env-mes { display:inline-flex; align-items:center; gap:6px; padding:2px 4px 2px 10px; border-radius:999px; background:var(--bg-card); border:1px solid var(--border-color); font-weight:700; }
.avm-env-mes small { font-weight:600; color:var(--text-muted); }
.avm-env-mes.auto { padding-right:10px; }
.avm-env-mes button, .avm-ver { padding:3px 7px; border:0; border-radius:6px; background:none; color:var(--blue); font:800 11px/1.2 inherit; cursor:pointer; }
.avm-env-mes button:hover, .avm-ver:hover { background:var(--bg-hover); }
.avm-ver { margin-left:auto; }
.avm-chip-ok { padding:2px 8px; border-radius:10px; font-size:10px; font-weight:800; background:rgba(16,185,129,.12); color:#047857; border:1px solid rgba(16,185,129,.35); white-space:nowrap; }

/* ── Mensagens de Sinistro: quadro "Dados do sinistro" (16/10/2026) ────────────
   Os campos que entram nas mensagens, digitados uma vez ou puxados de um sinistro já lançado. Mesma
   família do quadro do nome das Mensagens Prontas (fio na esquerda, ícone em halo), na cor do módulo
   (#E11D48, a do item no menu). O fio de progresso enche a cada campo e fica verde quando completa. */
.ptx-dados { position:relative; margin:0 0 14px; padding:14px 16px 16px 18px; background:var(--bg-card); border:1px solid var(--border-color);
  border-radius:14px; box-shadow:var(--shadow); animation:fadeInUp .36s var(--pt-ease) backwards; }
.ptx-dados::before { content:''; position:absolute; inset:0 auto 0 0; width:4px; border-radius:14px 0 0 14px; background:linear-gradient(180deg,#E11D48,#F59E0B); }
.ptx-dados-cab { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.ptx-dados-ic { width:42px; height:42px; flex-shrink:0; border-radius:12px; display:grid; place-items:center; background:rgba(225,29,72,.11); color:#BE123C; }
.ptx-dados-ic svg { width:21px; height:21px; }
.ptx-dados-tx { flex:1; min-width:220px; }
.ptx-dados-t { font-size:14.5px; font-weight:800; letter-spacing:-.01em; color:var(--text-main); }
.ptx-dados-s { margin-top:2px; font-size:11.5px; line-height:1.4; color:var(--text-muted); }
.ptx-dados-ac { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ptx-saud { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px; box-sizing:border-box; border-radius:999px;
  background:var(--blue-light); color:var(--blue); font-size:11.5px; font-weight:600; white-space:nowrap; cursor:default; }
.ptx-saud svg { width:14px; height:14px; }
.ptx-saud b { font-weight:800; }
.ptx-dados-prog-l { display:flex; align-items:center; gap:10px; margin:12px 0 0; }
.ptx-dados-prog { position:relative; flex:1; height:4px; overflow:hidden; border-radius:999px; background:var(--bg-page); }
.ptx-dados-prog span { position:absolute; inset:0; border-radius:inherit; background:linear-gradient(90deg,#E11D48,#F59E0B);
  transform-origin:left center; transform:scaleX(0); transition:transform .45s var(--pt-ease); }
.ptx-dados.completo .ptx-dados-prog span { background:linear-gradient(90deg,#059669,#10B981); }
.ptx-dados-prog::after { content:''; position:absolute; inset:0; transform:translateX(-100%); pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent); }
.ptx-dados.completo .ptx-dados-prog::after { animation:ptxBrilho .9s var(--pt-ease) .15s forwards; }
.ptx-dados-conta { min-width:112px; text-align:right; font-size:10.5px; font-weight:800; color:var(--text-muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.ptx-dados.completo .ptx-dados-conta { color:#047857; }

.ptx-dados-grade { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px 14px; margin-top:12px; }
.ptx-campo { position:relative; min-width:0; animation:fadeInUp .34s var(--pt-ease) backwards; animation-delay:calc(min(var(--i, 0), 5) * .03s + .06s); }
.ptx-campo .ptx-rot small { margin-left:4px; font-size:10px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--text-muted); }
.ptx-campo-in { position:relative; overflow:hidden; border-radius:10px; }
.ptx-campo input { width:100%; box-sizing:border-box; height:38px; padding:0 34px 0 12px; border-radius:10px; border:1px solid var(--border-color);
  background:var(--bg-page); color:var(--text-main); font:600 13px/1.3 inherit; transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease; }
.ptx-campo input::placeholder { font-weight:400; color:var(--text-muted); }
.ptx-campo input:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,79,156,.14); background:var(--bg-card); }
.ptx-campo.cheio input { border-color:rgba(22,163,74,.5); }
.ptx-campo-ok { position:absolute; right:10px; top:50%; width:18px; height:18px; margin-top:-9px; border-radius:50%; display:grid; place-items:center;
  background:#16A34A; color:#fff; opacity:0; transform:scale(.4); pointer-events:none; transition:opacity .2s var(--pt-ease), transform .3s var(--pt-ease); }
.ptx-campo-ok svg { width:10px; height:10px; }
.ptx-campo.cheio .ptx-campo-ok { opacity:1; transform:none; }
.ptx-campo-uso { margin-top:5px; font-size:10.5px; color:var(--text-muted); font-variant-numeric:tabular-nums; }
.ptx-campo-uso.zero { opacity:.7; }
/* Puxado de um sinistro: um brilho atravessa cada campo, um depois do outro (o atraso vem em --d). */
.ptx-campo-in::after { content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; transform:translateX(-110%);
  background:linear-gradient(100deg,transparent 25%,rgba(225,29,72,.18) 50%,transparent 75%); }
.ptx-campo.puxado .ptx-campo-in::after { animation:ptxBrilho .8s var(--pt-ease) var(--d, 0ms) forwards; }
/* Faltou na hora de copiar: o campo treme e fica âmbar até ser preenchido. */
.ptx-campo.falta input { border-color:#F59E0B; box-shadow:0 0 0 3px rgba(245,158,11,.2); }
.ptx-campo.falta .ptx-campo-in { animation:ptxTreme .42s var(--pt-ease); }

/* De onde vieram os dados, com o Desfazer. */
.ptx-origem { display:inline-flex; align-items:center; gap:8px; max-width:100%; box-sizing:border-box; margin-top:10px; padding:4px 5px 4px 11px;
  border-radius:999px; background:rgba(225,29,72,.07); border:1px solid rgba(225,29,72,.25); font-size:11.5px; color:var(--text-main);
  animation:fadeInUp .3s var(--pt-ease) backwards; }
.ptx-origem svg { width:13px; height:13px; flex-shrink:0; color:#BE123C; }
.ptx-origem > span { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.ptx-origem-x { flex-shrink:0; padding:4px 10px; border:0; border-radius:999px; background:var(--bg-card); color:var(--blue); font:800 11px/1.2 inherit; cursor:pointer;
  transition:background-color .15s ease; }
.ptx-origem-x:hover { background:var(--bg-hover); }

/* Puxar de um sinistro: a busca abre embaixo do botão, a partir do canto dele. */
.ptx-px-ancora { position:relative; }
.ptx-px-bt[aria-expanded="true"] { border-color:var(--blue); color:var(--blue); background:var(--blue-light); }
.ptx-px { position:absolute; top:calc(100% + 8px); right:0; z-index:40; width:min(440px, calc(100vw - 32px)); box-sizing:border-box; padding:10px;
  background:var(--bg-card); border:1px solid var(--border-color); border-radius:14px; box-shadow:0 18px 44px rgba(15,23,42,.2);
  transform-origin:top right; animation:ptxPxEntra .22s var(--pt-ease) backwards; }
.ptx-px[hidden] { display:none; }
@keyframes ptxPxEntra { from { opacity:0; transform:translateY(-6px) scale(.97); } }
.ptx-px-busca { position:relative; display:block; margin:0 0 8px; }
.ptx-px-busca svg { position:absolute; left:11px; top:50%; width:15px; height:15px; transform:translateY(-50%); color:var(--text-muted); pointer-events:none; }
.ptx-px-busca input { width:100%; box-sizing:border-box; height:38px; padding:0 12px 0 34px; border-radius:10px; border:1px solid var(--border-color);
  background:var(--bg-page); color:var(--text-main); font:400 12.5px/1.3 inherit; }
.ptx-px-busca input:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(26,79,156,.14); }
/* minmax(0, 1fr): sem ele a coluna cresce até o nome mais comprido caber, e o selo do status era cortado. */
.ptx-px-lista { display:grid; grid-template-columns:minmax(0, 1fr); gap:4px; max-height:min(340px, 52vh); overflow:auto; }
.ptx-px-dica { padding:14px 10px; font-size:11.5px; line-height:1.45; color:var(--text-muted); text-align:center; }
.ptx-px-dica.erro { color:#B91C1C; }
.ptx-px-it { display:flex; align-items:center; gap:10px; width:100%; box-sizing:border-box; padding:8px 10px; border:1px solid transparent; border-radius:10px;
  background:transparent; color:var(--text-main); font:inherit; text-align:left; cursor:pointer; animation:fadeInUp .26s var(--pt-ease) backwards;
  animation-delay:calc(min(var(--i, 0), 5) * .03s); transition:background-color .12s ease, border-color .12s ease; }
.ptx-px-it:hover, .ptx-px-it.ativo { background:var(--bg-hover); border-color:var(--border-color); }
.ptx-px-av { width:32px; height:32px; flex-shrink:0; border-radius:9px; display:grid; place-items:center; background:var(--av, #475569); color:#fff;
  font-size:11px; font-weight:800; box-shadow:inset 0 0 0 1px rgba(255,255,255,.14); }
.ptx-px-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.ptx-px-tx b { font-size:12.5px; font-weight:800; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.ptx-px-tx small { font-size:11px; color:var(--text-muted); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.ptx-px-tx small i { font-style:normal; margin:0 5px; opacity:.6; }
.ptx-px-tx mark { padding:0 1px; border-radius:3px; background:rgba(245,158,11,.3); color:inherit; }
.ptx-px-st { flex-shrink:0; padding:2px 7px; border-radius:999px; font-size:9.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap;
  background:color-mix(in srgb, var(--st, #64748B) 12%, transparent); color:color-mix(in srgb, var(--st, #64748B) 78%, var(--text-main));
  border:1px solid color-mix(in srgb, var(--st, #64748B) 34%, transparent); }
.ptx-px-carrega { display:flex; justify-content:center; gap:6px; padding:18px 0; }
.ptx-px-carrega span { width:7px; height:7px; border-radius:50%; background:#E11D48; opacity:.3; animation:ptxPonto 1s var(--pt-ease) infinite; }
.ptx-px-carrega span + span { animation-delay:.15s; }
.ptx-px-carrega span + span + span { animation-delay:.3s; }
@keyframes ptxPonto { 0%, 100% { opacity:.3; transform:translateY(0); } 50% { opacity:1; transform:translateY(-4px); } }
.ptx-px-pe { margin-top:8px; padding-top:8px; border-top:1px dashed var(--border-color); font-size:10.5px; line-height:1.4; color:var(--text-muted); }

/* Cada linha diz se a mensagem já está pronta com os dados do topo, ou o que falta. */
.ptx-pronta { display:inline-flex; align-items:center; gap:4px; padding:2px 7px; border-radius:6px; font-size:9.5px; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; white-space:nowrap; border:1px solid; }
.ptx-pronta svg { width:10px; height:10px; }
.ptx-pronta.ok { background:rgba(16,185,129,.12); color:#047857; border-color:rgba(16,185,129,.35); }
.ptx-pronta.falta { background:rgba(245,158,11,.12); color:#B45309; border-color:rgba(245,158,11,.35); }
.ptx-pronta.pop { animation:ptxPop .36s var(--pt-ease) both; }
/* Saudação dentro da mensagem: azul, porque é automática; o valor que acabou de ser puxado pulsa. */
.ptx-var.auto { background:rgba(26,79,156,.1); color:var(--blue); box-shadow:inset 0 0 0 1px rgba(26,79,156,.28); }
.ptx-var.muda { animation:ptxVarMuda .5s var(--pt-ease); }
@keyframes ptxVarMuda { 40% { transform:scale(1.07); } }
/* Editor: um botão por campo. */
.ptx-ed-campos { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:-2px 0 8px; }
.ptx-ed-campos .ptx-rot { margin:0 2px 0 0; }
.ptx-ed-campo { height:26px; padding:0 10px; border-radius:999px; border:1px solid rgba(22,163,74,.35); background:rgba(22,163,74,.08); color:#166534;
  font:700 11.5px/1 inherit; cursor:pointer; transition:transform .15s var(--pt-ease), background-color .15s ease; }
.ptx-ed-campo:hover { background:rgba(22,163,74,.16); transform:translateY(-1px); }
.ptx-ed-campo:active { transform:scale(.96); }
.ptx-ed-campo.auto { border-color:rgba(26,79,156,.3); background:rgba(26,79,156,.07); color:var(--blue); }
.ptx-px-it:focus-visible, .ptx-origem-x:focus-visible, .ptx-ed-campo:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }

/* ── Mensagens de Cobrança: quadro "Dados da cobrança" (21/10/2026), o mesmo do sinistro no verde da Cobrança ── */
.ptx-dados.cob::before { background:linear-gradient(180deg,#059669,#0D9488); }
.ptx-dados.cob .ptx-dados-ic { background:rgba(5,150,105,.11); color:#047857; }
.ptx-dados.cob .ptx-dados-prog span { background:linear-gradient(90deg,#0D9488,#10B981); }
/* O vencimento é campo de data: o calendário do navegador fica na direita, e o "ok" verde ao lado dele. */
.ptx-campo.data input { padding-right:12px; font-variant-numeric:tabular-nums; }
.ptx-campo.data .ptx-campo-ok { right:40px; }

/* ── Tema escuro: os tokens do painel já viram; aqui só o texto sobre tinta de estado ── */
body.dark .ptx-nome-ic, body.dark .ptx-nome.cheio .ptx-nome-s, body.dark .ptx-emo-nota svg { color:#4ADE80; }
body.dark .ptx-var { color:#86EFAC; }
body.dark .ptx-var.vazio, body.dark .ptx-chip-int { color:#FBBF24; }
body.dark .ptx-msg a, body.dark .ptx-form a, body.dark .ptx-f-h { color:#93C5FD; }
body.dark .ptx-sec-n, body.dark .ptx-f-n, body.dark .ptx-card-novo .ptx-mais { background:rgba(96,165,250,.16); color:#93C5FD; }
body.dark .ptx-f-q::before, body.dark .ptx-msg .ptx-l.b::before { background:#60A5FA; }
body.dark .ptx-rod-perigo { color:#FCA5A5; }
body.dark .ptx-linha:hover, body.dark .ptx-linha.aberta { border-color:rgba(96,165,250,.45); }
body.dark .ptx-card-novo:hover { color:#93C5FD; border-color:rgba(96,165,250,.5); }
body.dark .ptx-chip { color:color-mix(in srgb, var(--rc, #1A4F9C) 45%, #fff); }
body.dark .ptx-barra .ptx-bt.lix[aria-pressed="true"] { color:#93C5FD; border-color:#60A5FA; background:rgba(96,165,250,.12); }
body.dark .avm-bt, body.dark .avm-chip-ok { color:#6EE7B7; }
body.dark .avm-env-mes button, body.dark .avm-ver { color:#93C5FD; }
body.dark .avm-mes.ativo { border-color:#60A5FA; }
body.dark .ptx-chip-img, body.dark .ptx-ed-img-add .ptx-mais { background:rgba(96,165,250,.16); color:#93C5FD; border-color:rgba(96,165,250,.3); }
body.dark .ptx-imgs-cab svg { color:#93C5FD; }
body.dark .ptx-bt.ok { color:#6EE7B7; border-color:rgba(110,231,183,.4); background:rgba(16,185,129,.14); }
body.dark .ptx-ed-imgs.arrastando { border-color:#60A5FA; background:rgba(96,165,250,.12); }
body.dark .ptx-ed-img-add:hover { color:#93C5FD; border-color:rgba(96,165,250,.5); }
body.dark .ptx-ed-img.nova .ptx-ed-img-q { border-color:rgba(96,165,250,.55); box-shadow:0 0 0 3px rgba(96,165,250,.12); }
/* Mensagens de Sinistro */
body.dark .ptx-dados-ic { background:rgba(244,63,94,.16); color:#FDA4AF; }
body.dark .ptx-origem { background:rgba(244,63,94,.1); border-color:rgba(244,63,94,.32); }
body.dark .ptx-origem svg { color:#FDA4AF; }
body.dark .ptx-saud, body.dark .ptx-px-bt[aria-expanded="true"] { background:rgba(96,165,250,.14); color:#93C5FD; }
body.dark .ptx-px-bt[aria-expanded="true"] { border-color:#60A5FA; }
body.dark .ptx-dados.completo .ptx-dados-conta, body.dark .ptx-pronta.ok { color:#6EE7B7; }
body.dark .ptx-pronta.falta { color:#FBBF24; }
body.dark .ptx-px-dica.erro { color:#FCA5A5; }
body.dark .ptx-px-st { color:color-mix(in srgb, var(--st, #64748B) 45%, #fff); }
body.dark .ptx-px { box-shadow:0 18px 44px rgba(0,0,0,.5); }
body.dark .ptx-campo.cheio input { border-color:rgba(74,222,128,.45); }
body.dark .ptx-var.auto, body.dark .ptx-ed-campo.auto { background:rgba(96,165,250,.14); color:#93C5FD; box-shadow:inset 0 0 0 1px rgba(96,165,250,.3); }
body.dark .ptx-ed-campo { background:rgba(74,222,128,.1); color:#86EFAC; border-color:rgba(74,222,128,.35); }
body.dark .ptx-origem-x { color:#93C5FD; }
/* Mensagens de Cobrança */
body.dark .ptx-dados.cob .ptx-dados-ic { background:rgba(16,185,129,.14); color:#6EE7B7; }
body.dark .ptx-campo.data input { color-scheme:dark; }

/* ── Telas estreitas ──────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .ptx-ed, .ptx-ed-grade { grid-template-columns:1fr; }
  .ptx-ed textarea { height:300px; }
  .ptx-ed-previa { height:auto; min-height:180px; max-height:none; }
  .ptx-linha-top { flex-wrap:wrap; }
  .ptx-linha-ac { width:100%; justify-content:flex-end; }
  .ptx-linha-corpo { padding-left:16px; }
  .ptx-rod-dica { display:none; }
  .ptx-dados-grade { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .ptx-nome { align-items:flex-start; padding:12px; gap:10px; }
  .ptx-nome-ic { display:none; }
  /* Busca e "Excluídos" na primeira linha; a escolha WhatsApp / E-mail inteira na de baixo. */
  .ptx-busca { order:1; flex:1 1 0; min-width:0; max-width:none; }
  .ptx-barra .ptx-bt.lix { order:2; margin-left:0; }
  .ptx-fmt { order:3; flex:1 1 100%; }
  .ptx-fmt-op { flex:1; }
  .ptx-fmt-bt { min-width:0; }
  .ptx-grade, .ptx-esq.grade { grid-template-columns:1fr; }
  .ptx-card-ac { flex-wrap:wrap; }
  .ptx-img { width:100%; }
  .ptx-ed-img, .ptx-ed-img-q, .ptx-ed-img-add { width:calc(50% - 6px); }
  .ptx-ed-img .ptx-ed-img-q { width:100%; }
  .avm-mes { flex-wrap:wrap; }
  .avm-ver { margin-left:0; }
  /* Mensagens de Sinistro: um campo por linha; o Puxar ocupa a largura e a busca abre embaixo dele inteira. */
  .ptx-dados { padding:12px; }
  .ptx-dados-ic { display:none; }
  .ptx-dados-ac { width:100%; }
  .ptx-px-ancora { flex:1; position:static; }
  .ptx-dados-ac { position:relative; }
  .ptx-px-bt { width:100%; justify-content:center; }
  .ptx-px { left:0; right:0; width:auto; transform-origin:top center; }
  .ptx-dados-grade { grid-template-columns:1fr; }
  .ptx-dados-conta { min-width:0; }
  /* Cartão da lista de Avisos (painel.css): no celular o grupo de selos e o "Gerar Aviso" descem
     para a linha de baixo, senão o nome do segurado vira uma coluna de uma palavra por linha. */
  .av-card { flex-wrap:wrap; }
  .av-card > div:nth-child(2) { flex:1 1 calc(100% - 22px); }
  .av-card > div:last-child { flex-basis:100%; flex-wrap:wrap; justify-content:flex-end; }
}

/* ── Movimento reduzido ───────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .ptx-nome, .ptx-nome.treme, .ptx-linha, .ptx-card, .ptx-linha-corpo, .ptx-lix, .ptx-leitura, .ptx-ed, .ptx-ed-grade,
  .avm-mes, .avm-env, .ptx-copiar.ok .ptx-i-ok { animation:none !important; }
  .ptx-linha, .ptx-card, .ptx-copiar, .ptx-bt, .avm-bt, .ptx-nome-x, .ptx-fmt-pill, .ptx-fmt-bt, .ptx-card-novo .ptx-mais,
  .ptx-bt svg.ptx-seta, .ptx-img-ver img, .ptx-ed-imgs, .ptx-ed-img-add, .ptx-ed-img-add .ptx-mais { transition:none !important; }
  .ptx-img .ptx-img-ver::after { display:none; }
  .ptx-ed-img-add:hover .ptx-mais { transform:none; }
  .ptx-linha:hover, .ptx-card:hover, .ptx-copiar:hover, .avm-bt:hover, .ptx-card-novo:hover .ptx-mais { transform:none; }
  .ptx-copiar::after, .ptx-linha.copiada::after, .ptx-card.copiada::after, .ptx-esq-b::after { display:none; }
  /* Mensagens de Sinistro */
  .ptx-dados, .ptx-campo, .ptx-origem, .ptx-px, .ptx-px-it, .ptx-pronta.pop, .ptx-var.muda, .ptx-campo.falta .ptx-campo-in,
  .ptx-px-carrega span { animation:none !important; }
  .ptx-px-carrega span { opacity:.7; }
  .ptx-dados-prog span, .ptx-campo-ok, .ptx-campo input, .ptx-ed-campo, .ptx-origem-x, .ptx-px-it { transition:none !important; }
  .ptx-campo-in::after, .ptx-dados-prog::after { display:none; }
  .ptx-ed-campo:hover { transform:none; }
}
