/* BOTÃO FLUTUANTE DE SUPORTE (05/11/2026) — LATERAL DIREITA, no meio da altura, meio para fora da tela; ao passar o mouse
   (ou com novidade) desliza para dentro (decisão do usuário: no canto de cima cobria o "Próxima etapa").
   Não atrapalha: fica abaixo das listas dos combos e de qualquer janela, e SOME enquanto uma janela está aberta. */
.suporte-fab { position: fixed; right: -20px; top: calc(50% - 28px); width: 56px; height: 56px; z-index: 1030; display: block;
  border-radius: 50%; background: radial-gradient(circle at 35% 30%, #ffffff 0%, #e6f6f6 70%, #cfeeee 100%);
  box-shadow: 0 8px 22px rgba(0, 96, 96, .28), 0 0 0 3px rgba(255, 255, 255, .9); text-decoration: none;
  animation: sfFlutua 3.2s ease-in-out infinite; transition: box-shadow .2s, right .25s ease; }
.suporte-fab:hover, .suporte-fab:focus-visible, .suporte-fab.tem { right: 10px; }
.suporte-fab:hover, .suporte-fab:focus-visible { box-shadow: 0 12px 28px rgba(0, 96, 96, .4), 0 0 0 3px #fff; outline: none; animation-play-state: paused; }
.suporte-fab:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 6px #0d9488; }
.suporte-fab .sf-svg { width: 100%; height: 100%; display: block; overflow: visible; pointer-events: none; }
.sf-cabeca { fill: #ffffff; stroke: #b9e3e3; stroke-width: 1.2; }
/* ATENDENTE (05/11/2026): silhueta neutra em teal (sem tom de pele/cabelo) + headset e microfone em destaque */
.sf-corpo { fill: #0d9488; }
.sf-rosto { fill: #5eead4; }
.sf-v { transition: filter .3s, opacity .3s; transform-origin: 32px 32px; }
.sf-arco { fill: none; stroke: #0f2f3a; stroke-width: 3.6; stroke-linecap: round; }
.sf-fone { fill: #0f2f3a; stroke: #ffffff; stroke-width: 1.1; }
.sf-haste { fill: none; stroke: #0f2f3a; stroke-width: 2.6; stroke-linecap: round; }
.sf-mic-brilho { fill: rgba(249, 115, 22, .25); animation: sfMic 2.4s ease-in-out infinite; }
.sf-mic { fill: #f97316; stroke: #ffffff; stroke-width: 1.1; }
.sf-onda { fill: none; stroke: #14b8a6; stroke-width: 2; opacity: 0; transform-origin: 32px 32px; animation: sfOnda 3.2s ease-out infinite; }
.sf-num { display: none; font: 900 18px/1 'Segoe UI', Arial, sans-serif; fill: #b91c1c; paint-order: stroke; stroke: #fff; stroke-width: 3px; }
/* com novidade: o atendente fica desfocado e o número aparece no centro */
.suporte-fab.tem .sf-v { filter: blur(2.2px); opacity: .38; }
.suporte-fab.tem .sf-num { display: block; }
.suporte-fab.tem .sf-cabeca { stroke: #f87171; stroke-width: 2; }
.suporte-fab.tem .sf-onda { stroke: #ef4444; animation-duration: 1.6s; }
@keyframes sfFlutua { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes sfOnda { 0% { opacity: .6; transform: scale(1); } 80%, 100% { opacity: 0; transform: scale(1.45); } }
@keyframes sfMic { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .suporte-fab, .sf-onda, .sf-mic { animation: none; } }
@media (max-width: 768px) { .suporte-fab { right: -16px; top: calc(50% - 24px); width: 48px; height: 48px; }
  .suporte-fab:hover, .suporte-fab:focus-visible, .suporte-fab.tem { right: 8px; } }
/* some com QUALQUER janela aberta (Bootstrap, visualizador de PDF, tour de boas-vindas, aviso de sessão) e volta ao fechar */
body.modal-open .suporte-fab, body.has-open-modal .suporte-fab, body.tutorial-active .suporte-fab,
body:has(#pdfModal.show) .suporte-fab, body:has(.modal.show) .suporte-fab, body:has(#tutorialWelcome[style*="flex"]) .suporte-fab,
body:has(.tutorial-welcome:not([style*="none"])) .suporte-fab { display: none !important; }
@media print { .suporte-fab { display: none !important; } }
/* JANELA DE SUPORTE (05/11/2026) */
.suporte-janela { border: 0; border-radius: 16px; overflow: hidden; }
.suporte-janela .modal-header { background: linear-gradient(135deg, #0f766e, #0d9488); border: 0; gap: 8px; justify-content: flex-start; }
.suporte-janela .modal-header .btn-close { margin: 0; }
.suporte-janela .modal-title { margin-right: auto; font-weight: 700; }
.suporte-tela-cheia { color: #fff; opacity: .85; padding: 4px 8px; border-radius: 8px; }
.suporte-tela-cheia:hover, .suporte-tela-cheia:focus-visible { color: #fff; opacity: 1; background: rgba(255, 255, 255, .18); }
#suporteFrame { display: block; width: 100%; height: min(72vh, 760px); border: 0; background: #fff; }
@media (max-width: 767.98px) { #suporteFrame { height: calc(100vh - 126px); } .suporte-janela { border-radius: 0; } }
/* WhatsApp do suporte na janela (05/11/2026) */
.suporte-whats { display: flex; align-items: center; gap: 12px; padding: 10px 16px; text-decoration: none; color: #064e3b;
  background: linear-gradient(90deg, #ecfdf5 0%, #d1fae5 100%); border-bottom: 1px solid #a7f3d0; transition: background .2s; }
.suporte-whats:hover, .suporte-whats:focus-visible { background: linear-gradient(90deg, #d1fae5 0%, #a7f3d0 100%); color: #064e3b; outline: none; }
.suporte-whats:focus-visible { box-shadow: inset 0 0 0 2px #059669; }
.sw-icone { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #25d366, #128c7e); color: #fff; font-size: 1.35rem; box-shadow: 0 4px 12px rgba(37, 211, 102, .35);
  animation: swPulso 2.6s ease-in-out infinite; }
.sw-texto { flex: 1; min-width: 0; line-height: 1.25; }
.sw-texto b { display: block; font-size: .9rem; }
.sw-texto small { display: block; font-size: .78rem; color: #047857; }
.sw-acao { flex: 0 0 auto; padding: 7px 14px; border-radius: 999px; background: #128c7e; color: #fff; font-weight: 700; font-size: .82rem;
  box-shadow: 0 3px 10px rgba(18, 140, 126, .3); transition: transform .15s; }
.suporte-whats:hover .sw-acao { transform: translateX(2px); background: #0f766e; }
@keyframes swPulso { 0%, 100% { box-shadow: 0 4px 12px rgba(37, 211, 102, .35); } 50% { box-shadow: 0 4px 12px rgba(37, 211, 102, .35), 0 0 0 6px rgba(37, 211, 102, .15); } }
@media (prefers-reduced-motion: reduce) { .sw-icone { animation: none; } }
@media (max-width: 575.98px) { .sw-acao { display: none; } .suporte-whats { padding: 9px 12px; } }
