/* botões flutuantes: chat do Bruno + WhatsApp */
.fabs{position:fixed;right:18px;bottom:18px;z-index:150;display:flex;flex-direction:column;align-items:flex-end;gap:16px}
.fab-row{display:flex;align-items:center;gap:12px}
.fab{position:relative;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;border:0;color:#fff;flex:none}
.fab .icon{width:30px;height:30px}
.fab--chat{background:var(--grad);box-shadow:0 10px 30px -8px rgba(0,102,255,.85);animation:wob 6s infinite 3s}
.fab--chat .ring{border-color:var(--cyan)}
.on-dot{position:absolute;left:1px;bottom:1px;width:15px;height:15px;border-radius:50%;background:var(--ok);border:2px solid var(--bg);animation:onl 2s infinite}
@keyframes onl{0%{box-shadow:0 0 0 0 rgba(61,220,151,.7)}70%,100%{box-shadow:0 0 0 7px rgba(61,220,151,0)}}
.greet{position:relative;max-width:250px;border-radius:14px 14px 4px 14px;background:#fff;color:#0b101a;box-shadow:0 14px 36px -10px rgba(0,0,0,.7);visibility:hidden;opacity:0;transform:translateX(12px) scale(.97);transition:opacity .4s,transform .4s var(--ease),visibility .4s}
.greet.show{visibility:visible;opacity:1;transform:none}
.greet::after{content:"";position:absolute;right:-6px;top:50%;margin-top:-6px;border:6px solid transparent;border-left-color:#fff;border-right:0}
.greet__o{display:block;width:100%;padding:11px 34px 11px 14px;background:none;border:0;border-radius:inherit;text-align:left;color:inherit;font-size:.88rem;line-height:1.4}
.greet__o b{display:flex;align-items:center;gap:6px;margin-bottom:2px;font-weight:600}
.greet__o b::before{content:"";width:8px;height:8px;border-radius:50%;background:#1faa6b}
.greet__x{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:8px;background:none;color:#5b6678}
.greet__x:hover{background:#eef1f6}.greet__x .icon{width:14px;height:14px}
.wf{display:flex;align-items:center;gap:12px}
.wf__l{padding:9px 14px;border-radius:12px;background:rgba(11,16,26,.96);border:1px solid var(--bd2);font-size:.86rem;font-weight:500;opacity:0;transform:translateX(10px);pointer-events:none;transition:opacity .4s,transform .4s var(--ease);white-space:nowrap}
.wf.lbl .wf__l,.wf:hover .wf__l{opacity:1;transform:none}
.wf__b{position:relative;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--wa);color:#fff;box-shadow:0 10px 30px -8px rgba(14,143,84,.8);animation:wob 6s infinite}
.wf__b .icon{width:30px;height:30px}
.ring{position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:ring 2.4s infinite var(--ease);pointer-events:none}.ring.r2{animation-delay:1.2s}
@keyframes ring{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.9);opacity:0}}
@keyframes wob{0%,86%,100%{transform:none}89%{transform:rotate(-12deg)}92%{transform:rotate(10deg)}95%{transform:rotate(-6deg)}}
.badge-n{position:absolute;top:-3px;right:-3px;min-width:22px;height:22px;display:grid;place-items:center;border-radius:11px;background:#e5253d;border:2px solid var(--bg);font:700 .72rem var(--fb);color:#fff;animation:pop 2.4s infinite}
@keyframes pop{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
body.chat-open .fabs,body.lock .fabs{visibility:hidden}

/* painel do chat */
.bw{position:fixed;right:18px;bottom:18px;z-index:160;display:flex;flex-direction:column;width:380px;height:min(600px,calc(100dvh - 36px));background:#0b101a;border:1px solid var(--bd2);border-radius:20px;box-shadow:0 40px 100px -20px #000;overflow:hidden;animation:pin .3s var(--ease)}
.bw-h{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,rgba(0,102,255,.35),rgba(0,210,255,.12));border-bottom:1px solid var(--bd)}
.bw-av{position:relative;flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--grad);font:700 1.1rem var(--fh);color:#fff}
.bw-av img{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover}
.bw-av .on-dot{left:auto;right:-2px;bottom:-1px;border-color:#0b1424;z-index:1}
.bw-t{flex:1;min-width:0}.bw-t strong{display:block;font:600 1.05rem var(--fh);line-height:1.2}
.bw-t small{display:flex;align-items:center;gap:6px;color:var(--ok);font-size:.78rem}.bw-t small::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}
.bw-n{padding:9px 16px;border-bottom:1px solid var(--bd);color:var(--muted);font-size:.76rem;line-height:1.45}
.bw-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.bw-log .msg{white-space:pre-wrap;overflow-wrap:anywhere}
.bw-chips{display:flex;flex-wrap:wrap;gap:8px}
.bw-chip{padding:8px 12px;border-radius:999px;border:1px solid rgba(0,210,255,.35);background:rgba(0,210,255,.07);color:#cfefff;font-size:.84rem;transition:background .2s}
.bw-chip:hover{background:rgba(0,210,255,.16)}
.bw-err{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 14px 8px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,107,122,.35);background:rgba(255,107,122,.1);color:#ffc2c9;font-size:.84rem}
.bw-f{display:flex;align-items:flex-end;gap:10px;padding:12px 14px;border-top:1px solid var(--bd)}
.bw-f textarea{flex:1;min-width:0;max-height:110px;resize:none;padding:11px 14px;border-radius:12px;border:1px solid var(--bd2);background:rgba(255,255,255,.04);font-size:1rem;line-height:1.4}
.bw-f textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 4px rgba(0,210,255,.15)}
.bw-f .sendb{width:44px;height:44px}.bw-f .sendb:disabled{opacity:.5;cursor:not-allowed}


@media (max-width:768px){
 .greet{display:none}
 .bw{right:0;left:0;bottom:0;width:100%;height:min(88dvh,680px);border-radius:20px 20px 0 0;border-bottom:0}
}

@media (max-width:768px){
.greet{display:none}
.bw{right:0;left:0;bottom:0;width:100%;height:min(88dvh,680px);border-radius:20px 20px 0 0;border-bottom:0}
}
