/* ---------- CHATBOT WIDGET ---------- */
.cw-launcher{
  position:fixed;right:24px;bottom:24px;z-index:200;
  width:58px;height:58px;border-radius:50%;
  background:var(--verde-vital);color:var(--blanco);
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 28px -8px rgba(22,35,26,.45);
  transition:.18s ease;
}
.cw-launcher:hover{background:var(--verde-vital-d);transform:translateY(-2px);}
.cw-launcher svg{width:26px;height:26px;}
.cw-launcher .cw-badge{
  position:absolute;top:-2px;right:-2px;width:14px;height:14px;border-radius:50%;
  background:var(--celeste);border:2px solid var(--papel);
}

.cw-bubble{
  position:fixed;right:24px;bottom:92px;z-index:199;
  max-width:220px;padding:10px 32px 10px 14px;
  background:var(--blanco);color:var(--tinta);
  border:1px solid var(--linea);border-radius:14px;border-bottom-right-radius:4px;
  font-family:var(--body);font-size:13px;line-height:1.4;
  box-shadow:0 12px 28px -8px rgba(22,35,26,.3);
  cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.18s ease;
}
.cw-bubble.show{opacity:1;visibility:visible;transform:translateY(0);}
.cw-bubble-close{
  position:absolute;top:4px;right:6px;width:20px;height:20px;
  border:none;background:none;color:var(--tinta-suave);cursor:pointer;
  font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;
}
.cw-bubble-close:hover{color:var(--tinta);}

.cw-panel{
  position:fixed;right:24px;bottom:94px;z-index:200;
  width:360px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 140px);
  background:var(--blanco);border:1px solid var(--linea);border-radius:20px;
  box-shadow:0 30px 60px -16px rgba(22,35,26,.35);
  display:flex;flex-direction:column;overflow:hidden;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:.18s ease;
}
.cw-panel.open{opacity:1;visibility:visible;transform:translateY(0);}

.cw-head{
  background:var(--verde-campo-2);color:var(--papel);padding:16px 18px;
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
}
.cw-head-title{font-family:var(--display);font-weight:600;font-size:15px;}
.cw-head-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:rgba(255,255,255,.65);margin-top:2px;}
.cw-close{background:none;border:none;color:rgba(255,255,255,.75);cursor:pointer;padding:4px;}
.cw-close:hover{color:var(--papel);}
.cw-close svg{width:18px;height:18px;}

.cw-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--papel);}
.cw-msg{max-width:86%;padding:10px 13px;border-radius:10px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;}
.cw-msg.bot{background:var(--blanco);border:1px solid var(--linea);align-self:flex-start;color:var(--tinta);border-bottom-left-radius:2px;}
.cw-msg.user{background:var(--verde-vital);color:var(--blanco);align-self:flex-end;border-bottom-right-radius:2px;}
.cw-msg.error{background:#FBEAEA;border:1px solid #B23A3A;color:#B23A3A;align-self:flex-start;}
.cw-msg a{color:inherit;text-decoration:underline;}

.cw-typing{display:flex;gap:4px;align-self:flex-start;padding:10px 13px;}
.cw-typing span{width:6px;height:6px;border-radius:50%;background:var(--tinta-suave);opacity:.5;animation:cwBlink 1.2s infinite;}
.cw-typing span:nth-child(2){animation-delay:.2s;}
.cw-typing span:nth-child(3){animation-delay:.4s;}
@keyframes cwBlink{0%,80%,100%{opacity:.25;}40%{opacity:.9;}}

.cw-suggestions{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px;flex-shrink:0;}
.cw-suggestion{
  font-family:var(--mono);font-size:11px;padding:6px 10px;border-radius:14px;
  border:1px solid var(--linea);background:var(--blanco);color:var(--tinta-suave);cursor:pointer;
}
.cw-suggestion:hover{border-color:var(--verde-vital);color:var(--verde-vital-d);}

.cw-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--linea);background:var(--blanco);flex-shrink:0;}
.cw-input{
  flex:1;border:1px solid var(--linea);border-radius:20px;padding:10px 16px;
  font-family:var(--body);font-size:13.5px;color:var(--tinta);background:var(--papel);
}
.cw-input:focus{outline:none;border-color:var(--verde-vital);}
.cw-send{
  width:38px;height:38px;border-radius:50%;border:none;background:var(--verde-vital);color:var(--blanco);
  cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.cw-send:hover{background:var(--verde-vital-d);}
.cw-send:disabled{opacity:.5;cursor:default;}
.cw-send svg{width:16px;height:16px;}

@media (max-width:600px){
  .cw-panel{right:16px;bottom:86px;width:calc(100vw - 32px);}
  .cw-launcher{right:16px;bottom:16px;}
  .cw-bubble{right:16px;bottom:84px;}
}
