/* ============================================================
   ASSISTENTE VIRTUAL — estilos (arquivo próprio desde 2026-09-17)
   Separado do assistencia.css para o assistente também rodar no
   site público (index) sem carregar o CSS do app. O app recebe
   estes estilos pelo @import no topo do assistencia.css.
   ============================================================ */
/* ============================================================
   ASSISTENTE VIRTUAL (2026-09-05) — substitui o botão flutuante
   de abertura de tickets. Mesmo canto, mesma altura; o que muda
   é o que acontece ao clicar. Estilos consumidos por
   /assistente-virtual.js. Fonte mínima 13px (dogma).
   ============================================================ */
.av-fab{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:850;
  width:52px;
  height:52px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(135deg,#c51f2a,#8f111c);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,.45);
  transition:filter .15s ease,transform .15s ease;
}
.av-fab:hover{filter:brightness(1.1);transform:translateY(-1px)}
.av-fab:focus-visible{outline:2px solid #ff8a93;outline-offset:3px}

.av-painel{
  position:fixed;
  right:22px;
  bottom:86px;
  z-index:860;
  width:min(400px,calc(100vw - 32px));
  max-height:min(640px,calc(100vh - 120px));
  display:flex;
  flex-direction:column;
  background:#0f1722;
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  box-shadow:0 26px 90px rgba(0,0,0,.55);
  overflow:hidden;
}
.av-header{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;
  background:linear-gradient(135deg,rgba(197,31,42,.22),rgba(143,17,28,.12));
  border-bottom:1px solid rgba(255,255,255,.10);
}
.av-header-id{display:flex;align-items:center;gap:10px;min-width:0}
.av-avatar{
  width:34px;height:34px;flex:0 0 34px;border-radius:999px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,#c51f2a,#8f111c);color:#fff;
  border:1px solid rgba(255,255,255,.18);
}
.av-avatar svg{width:19px;height:19px}
.av-header-titulo{font-size:14px;font-weight:800;color:#fff;line-height:1.2}
.av-header-sub{font-size:13px;color:#99a6b5;line-height:1.3}
.av-fechar{
  width:32px;height:32px;flex:0 0 32px;border-radius:10px;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);
  color:#fff;cursor:pointer;font-size:20px;line-height:1;
}
.av-fechar:hover{background:rgba(255,255,255,.12)}

.av-corpo{
  flex:1 1 auto;overflow-y:auto;padding:14px;
  display:flex;flex-direction:column;gap:12px;
  background:#0b121c;
}
.av-msg{display:flex;flex-direction:column;gap:8px;max-width:100%}
.av-msg-user{align-items:flex-end}
.av-msg-user .av-bolha{
  background:rgba(197,31,42,.20);border:1px solid rgba(197,31,42,.38);
  color:#fff;max-width:88%;
}
.av-bolha{
  background:#131c28;border:1px solid rgba(255,255,255,.10);
  border-radius:12px;padding:11px 13px;
  color:#e8eef6;font-size:13.5px;line-height:1.6;
}
.av-bolha p{margin:0 0 9px}
.av-bolha p:last-child{margin-bottom:0}
.av-bolha h4{margin:0 0 8px;font-size:14px;color:#fff}
.av-bolha ul,.av-bolha ol{margin:0 0 10px 18px;padding:0}
.av-bolha li{margin:4px 0}
.av-bolha strong{color:#fff}
.av-bolha em{color:#c9d5e2;font-style:normal;font-weight:600}
.av-nota{color:#99a6b5;font-size:13px}
/* O "?" do botão flutuante e do avatar do cabeçalho. Desenhado com tipografia, não com SVG:
   um ponto de interrogação em peso 900 lê melhor em 52px do que qualquer traçado vetorial. */
.av-interrogacao{font-size:26px;font-weight:900;line-height:1;display:block;transform:translateY(-1px)}
.av-avatar .av-interrogacao{font-size:19px}

/* Resposta vinda do agente de IA: mesma bolha, com a marca ✨ e as fontes consultadas embaixo. */
.av-ia-marca{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:800;color:#c9b6ff;margin-bottom:6px}
.av-pensando{display:flex;align-items:center;gap:8px;font-size:13px;color:#99a6b5}
.av-pensando::before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:#c9b6ff;animation:av-girar .8s linear infinite}
@keyframes av-girar{to{transform:rotate(360deg)}}
.av-fontes{margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.10)}
.av-fontes-titulo{font-size:13px;font-weight:800;color:#99a6b5;letter-spacing:.04em;text-transform:uppercase;margin-bottom:5px}
.av-fonte{font-size:13px;color:#aab8c7;line-height:1.5;margin:2px 0}
.av-fonte b{color:#c9d5e2;font-weight:700}
/* A citação é clicável: abre o ato/pergunta na Base de Normas ou reabre o tópico de ajuda.
   É <button> e não <a> porque links não reagem ao hover neste app (dogma). */
.av-fonte-link{
  background:none;border:0;padding:0;margin:0;cursor:pointer;font:inherit;text-align:left;
  color:#c9d5e2;font-weight:700;text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:rgba(201,213,226,.45);
}
.av-fonte-link:hover{color:#fff;text-decoration-color:#fff}

.av-acoes{display:flex;flex-wrap:wrap;gap:7px}
.av-acao{
  border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700;cursor:pointer;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);color:#dbe6f2;
  transition:background-color .15s ease,border-color .15s ease;
}
.av-acao:hover{background:rgba(255,255,255,.13)}
.av-acao-zap{background:#22c55e;border-color:#22c55e;color:#06210f}
.av-acao-zap:hover{background:#16a34a;border-color:#16a34a}

/* Guia das telas do assistente: cada tela do menu com o que faz e os atalhos (2026-09-17). */
.av-guia{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.av-guia-item{border:1px solid rgba(255,255,255,.10);border-radius:10px;padding:9px 10px;background:rgba(255,255,255,.025)}
.av-guia-titulo{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:#fff}
.av-guia-num{flex:0 0 22px;height:22px;border-radius:999px;display:grid;place-items:center;font-size:13px;background:rgba(197,31,42,.25);color:#ffd4d7}
.av-guia-texto{font-size:13px;color:#c9d5e2;line-height:1.5;margin:5px 0 7px}
.av-guia-acoes{display:flex;flex-wrap:wrap;gap:6px}

/* Ticket para o administrador, preenchido dentro do assistente (2026-09-17). */
.av-ticket-form{display:flex;flex-direction:column;gap:9px;margin-top:10px}
.av-ticket-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;color:#c9d5e2}
.av-ticket-form input,.av-ticket-form select,.av-ticket-form textarea{
  width:100%;box-sizing:border-box;border-radius:10px;border:1px solid rgba(255,255,255,.16);
  background:#0b121c;color:#eef3f8;padding:9px 11px;font-size:14px;font-family:inherit;font-weight:400;
}
.av-ticket-form textarea{resize:vertical;min-height:90px;line-height:1.45}
.av-ticket-form input:focus,.av-ticket-form select:focus,.av-ticket-form textarea:focus{outline:none;border-color:rgba(197,31,42,.55)}
.av-ticket-msg{font-size:13px;color:#99a6b5;min-height:0}
.av-ticket-msg:empty{display:none}
.av-ticket-msg.erro{color:#fbbf24}
.av-acao:disabled{opacity:.6;cursor:default}
@media(max-width:640px){.av-ticket-form input,.av-ticket-form select,.av-ticket-form textarea{font-size:16px}}

.av-cat{margin-top:10px}
.av-cat-titulo{
  font-size:13px;font-weight:800;color:#99a6b5;
  letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px;
}
.av-cat-itens{display:flex;flex-wrap:wrap;gap:6px}
.av-chip{
  border-radius:999px;padding:6px 11px;font-size:13px;font-weight:600;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);color:#dbe6f2;
  text-align:left;
}
.av-chip:hover{background:rgba(197,31,42,.16);border-color:rgba(197,31,42,.45);color:#fff}

.av-rodape{
  display:flex;gap:8px;padding:11px 12px;
  border-top:1px solid rgba(255,255,255,.10);background:#0f1722;
}
.av-input{
  flex:1 1 auto;min-width:0;border-radius:10px;
  border:1px solid rgba(255,255,255,.16);background:#0b121c;color:#eef3f8;
  padding:10px 12px;font-size:13.5px;font-family:inherit;
}
.av-input:focus{outline:none;border-color:rgba(197,31,42,.55)}
.av-enviar{
  flex:0 0 42px;width:42px;height:42px;border-radius:10px;cursor:pointer;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(135deg,#c51f2a,#8f111c);color:#fff;
  display:grid;place-items:center;
}
.av-enviar:hover{filter:brightness(1.1)}
.av-enviar svg{width:18px;height:18px}

/* Mobile: o painel vira folha de baixo para cima, ocupando a largura toda.
   - Largura presa à tela (max-width em vw + box-sizing): nunca maior que o aparelho, mesmo que a
     página por trás tenha algum transbordo.
   - Campo com 16px: abaixo disso o iPhone dá zoom ao focar e o painel "foge" da tela ao digitar.
   - Com o teclado aberto, o assistente-virtual.js reposiciona o painel pela área visível
     (visualViewport), para o campo não ficar por baixo do teclado. */
@media(max-width:640px){
  .av-fab{right:14px;bottom:14px;width:48px;height:48px}
  .av-painel{
    box-sizing:border-box;
    right:8px;left:8px;bottom:72px;
    width:auto;max-width:calc(100vw - 16px);
    max-height:calc(100dvh - 96px);
  }
  .av-painel *{box-sizing:border-box;max-width:100%}
  .av-bolha{overflow-wrap:anywhere}
  .av-input{font-size:16px}
  .av-acao,.av-chip{white-space:normal;text-align:left}
  /* Fonte leve no celular: sem negrito nos botões e textos; títulos com peso 500. */
  .av-acao,.av-chip,.av-bolha strong,.av-guia-texto,.av-fonte-link,.av-ticket-form label{font-weight:400}
  .av-header-titulo,.av-bolha h4,.av-guia-titulo,.av-cat-titulo,.av-fontes-titulo,.av-ia-marca{font-weight:500}
}

/* DOGMA (2026-09-17): texto corrido sempre JUSTIFICADO nas respostas do assistente. */
.av-msg-bot .av-bolha p,.av-msg-bot .av-bolha li,.av-guia-texto{text-align:justify;hyphens:auto;-webkit-hyphens:auto}

