#cschat-root{
  --cschat-accent:#1F3A5F;
  --cschat-accent-dark:#152A46;
  --cschat-line:#E4E0DA;
  --cschat-paper:#FBF9F6;
  --cschat-ink:#1A1A1E;
  --cschat-ink-soft:#5A5A63;
  position:fixed; right:22px; bottom:22px; z-index:99999;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
#cschat-root *{box-sizing:border-box}

.cschat-launcher{
  width:60px;height:60px;border-radius:50%;border:0;cursor:grab;padding:0;overflow:hidden;
  box-shadow:0 6px 22px rgba(0,0,0,.22);position:relative;touch-action:none;
  transition:transform .22s cubic-bezier(.34,1.4,.64,1);
}
.cschat-launcher.cschat-dragging{cursor:grabbing;transition:none}
.cschat-launcher:hover{transform:scale(1.06)}
.cschat-launcher:focus-visible{outline:3px solid var(--cschat-accent);outline-offset:3px}
.cschat-launcher svg{width:60px;height:60px;display:block;pointer-events:none}
.cschat-launcher img.cschat-photo{width:60px;height:60px;object-fit:cover;display:block;pointer-events:none}
.cschat-dot{position:absolute;top:3px;right:3px;width:13px;height:13px;border-radius:50%;background:#5DCAA5;border:2px solid var(--cschat-paper);pointer-events:none}

/* quando la chat è aperta, nascondi l'omino così non copre il tasto invia */
#cschat-root.cschat-open .cschat-launcher{display:none}

.cschat-panel{
  position:absolute;right:0;bottom:0;width:372px;max-width:calc(100vw - 32px);
  background:#fff;border-radius:16px;overflow:hidden;
  box-shadow:0 18px 50px rgba(0,0,0,.26);
  display:none;flex-direction:column;
}
.cschat-panel.open{display:flex;animation:cschat-grow .26s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes cschat-grow{from{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:none}}

/* apertura dal lato/alto giusto quando l'omino è stato spostato */
#cschat-root.cschat-left .cschat-panel{left:0;right:auto}
#cschat-root.cschat-top .cschat-panel{top:0;bottom:auto}

.cschat-head{background:var(--cschat-accent);color:#fff;padding:13px 14px;display:flex;align-items:center;gap:11px}
.cschat-av{width:44px;height:44px;border-radius:50%;flex:0 0 auto;overflow:hidden}
.cschat-av svg{width:44px;height:44px;display:block}
.cschat-av img.cschat-photo{width:44px;height:44px;object-fit:cover;display:block}
.cschat-name{font-size:15px;font-weight:600;line-height:1.2}
.cschat-status{font-size:11px;opacity:.85;display:flex;align-items:center;gap:5px;margin-top:2px}
.cschat-status i{width:7px;height:7px;border-radius:50%;background:#5DCAA5;display:inline-block}
.cschat-x{margin-left:auto;background:transparent;border:0;color:#fff;cursor:pointer;padding:6px;border-radius:6px;opacity:.85;line-height:0}
.cschat-x:hover{background:rgba(255,255,255,.15);opacity:1}
.cschat-x svg{width:18px;height:18px}

.cschat-body{padding:14px;height:340px;overflow-y:auto;background:var(--cschat-paper);display:flex;flex-direction:column;gap:9px}
.cschat-body::-webkit-scrollbar{width:6px}
.cschat-body::-webkit-scrollbar-thumb{background:#d8d4cd;border-radius:3px}

.cschat-msg{max-width:84%;font-size:14px;line-height:1.55;padding:9px 12px;border-radius:14px;word-wrap:break-word;white-space:pre-wrap;animation:cschat-msg-in .28s ease both}
@keyframes cschat-msg-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cschat-msg.bot{background:#fff;border:1px solid var(--cschat-line);border-bottom-left-radius:4px;align-self:flex-start;color:var(--cschat-ink)}
.cschat-msg.user{background:var(--cschat-accent);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}

/* link cliccabili nei messaggi */
.cschat-msg a{color:var(--cschat-accent);text-decoration:underline;word-break:break-all}
.cschat-msg.user a{color:#fff}
.cschat-msg a.cschat-wa{display:inline-flex;align-items:center;gap:5px;background:#25D366;color:#fff;text-decoration:none;padding:3px 9px;border-radius:16px;font-size:13px;font-weight:600;word-break:normal;white-space:nowrap;margin:2px 0}
.cschat-msg a.cschat-email{display:inline-flex;align-items:center;gap:5px;max-width:100%;background:var(--cschat-accent);color:#fff;text-decoration:none;padding:3px 10px;border-radius:16px;font-size:13px;font-weight:600;word-break:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0;vertical-align:bottom}
.cschat-msg.user a.cschat-email{background:#fff;color:var(--cschat-accent)}
.cschat-msg a.cschat-email::before{content:"";flex:0 0 auto;width:13px;height:13px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/></svg>") center/contain no-repeat}
.cschat-msg a.cschat-wa::before{content:"";width:13px;height:13px;background:#fff;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a10 10 0 0 0-8.6 15l-1.4 5 5.1-1.3A10 10 0 1 0 12 2zm5.3 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .1-1.7-.1-.4-.1-1-.3-1.6-.6-2.9-1.3-4.8-4.2-4.9-4.4-.2-.2-1.2-1.6-1.2-3s.7-2.1 1-2.4c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.1.1.3 0 .5l-.4.6-.3.3c-.2.2-.4.4-.2.7.2.4.9 1.4 1.9 2.3 1.3 1.1 2.3 1.5 2.7 1.6.3.1.5.1.7-.1l.9-1c.2-.2.4-.2.6-.1l2 .9c.3.2.5.3.5.4.1.2.1.7-.1 1.3z'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a10 10 0 0 0-8.6 15l-1.4 5 5.1-1.3A10 10 0 1 0 12 2z'/></svg>") center/contain no-repeat}

.cschat-src{margin-top:9px;padding-top:8px;border-top:1px solid var(--cschat-line);display:flex;flex-direction:column;gap:3px}
.cschat-src-label{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--cschat-ink-soft)}
.cschat-src a{font-size:12px;color:var(--cschat-accent);text-decoration:none;line-height:1.4}
.cschat-src a:hover{text-decoration:underline}

.cschat-typing{display:inline-flex;gap:4px;align-items:center;background:#fff;border:1px solid var(--cschat-line);border-radius:14px;border-bottom-left-radius:4px;padding:12px;align-self:flex-start}
.cschat-typing span{width:6px;height:6px;border-radius:50%;background:#b9b4ac;animation:cschat-blink 1.2s infinite}
.cschat-typing span:nth-child(2){animation-delay:.18s}
.cschat-typing span:nth-child(3){animation-delay:.36s}
@keyframes cschat-blink{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

.cschat-foot{display:flex;align-items:center;gap:8px;padding:10px;border-top:1px solid var(--cschat-line);background:#fff}
.cschat-foot input{flex:1;border:1px solid var(--cschat-line);border-radius:22px;padding:10px 14px;font-size:14px;font-family:inherit;outline:none;color:var(--cschat-ink)}
.cschat-foot input:focus{border-color:var(--cschat-accent)}
.cschat-send{width:38px;height:38px;flex:0 0 auto;border:0;border-radius:50%;background:var(--cschat-accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.cschat-send:hover{background:var(--cschat-accent-dark)}
.cschat-send svg{width:17px;height:17px}
.cschat-legal{font-size:10px;color:#9a958d;text-align:center;padding:0 0 9px;background:#fff}

/* --- effetti launcher --- */
.cschat-launcher.fx-pulse::after{content:"";position:absolute;inset:0;border-radius:50%;animation:cschat-pulse 2.2s infinite}
@keyframes cschat-pulse{0%{box-shadow:0 0 0 0 rgba(31,58,95,.45)}70%{box-shadow:0 0 0 14px rgba(31,58,95,0)}100%{box-shadow:0 0 0 0 rgba(31,58,95,0)}}
.cschat-launcher.fx-float{animation:cschat-float 3s ease-in-out infinite}
@keyframes cschat-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.cschat-launcher.fx-ring::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--cschat-accent);opacity:0;animation:cschat-ring 2.4s ease-out infinite}
@keyframes cschat-ring{0%{transform:scale(.85);opacity:.7}100%{transform:scale(1.4);opacity:0}}

/* --- animazione del badge avatar --- */
.cschat-launcher.av-wiggle svg,.cschat-launcher.av-wiggle img{transform-origin:50% 62%;animation:cschat-wiggle 3.2s ease-in-out infinite}
@keyframes cschat-wiggle{0%,86%,100%{transform:rotate(0)}90%{transform:rotate(-9deg)}94%{transform:rotate(9deg)}}
.cschat-launcher.av-bob svg,.cschat-launcher.av-bob img{animation:cschat-avbob 2.6s ease-in-out infinite}
@keyframes cschat-avbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.cschat-launcher.av-pop svg,.cschat-launcher.av-pop img{transform-origin:50% 60%;animation:cschat-avpop 3s ease-in-out infinite}
@keyframes cschat-avpop{0%,88%,100%{transform:scale(1)}94%{transform:scale(1.14)}}

/* --- bollicina teaser --- */
.cschat-teaser{position:absolute;right:72px;bottom:14px;max-width:180px;background:#fff;color:var(--cschat-ink);border:1px solid var(--cschat-line);border-radius:16px 16px 4px 16px;padding:9px 13px;font-size:13px;line-height:1.4;box-shadow:0 4px 16px rgba(0,0,0,.12);cursor:pointer;opacity:0;transform:translateY(6px) scale(.96);pointer-events:none;transition:opacity .25s,transform .25s}
.cschat-teaser.show{opacity:1;transform:none;pointer-events:auto}
#cschat-root.cschat-open .cschat-teaser{display:none}

@media (max-width:480px){
  #cschat-root{right:14px;bottom:14px}
  /* pannello ancorato al viewport: si apre sempre dentro lo schermo,
     indipendentemente da dove è stato trascinato l'omino */
  .cschat-panel{position:fixed;left:8px;right:8px;top:auto;bottom:8px;width:auto;max-width:none}
  #cschat-root.cschat-left .cschat-panel,
  #cschat-root.cschat-top .cschat-panel{left:8px;right:8px;top:auto;bottom:8px}
  .cschat-body{height:auto;max-height:52vh}
}
@media (prefers-reduced-motion:reduce){
  #cschat-root *{animation:none!important;transition:none!important}
}
