.icb-burbuja,
.icb-panel,
.icb-panel * { box-sizing: border-box; }

.icb-burbuja {
  position: fixed; right: 22px; bottom: 22px; width: 60px; height: 60px;
  display: grid; place-items: center; overflow: hidden; padding: 0;
  border: 1px solid rgba(255,255,255,.2) !important; border-radius: 20px !important; cursor: pointer;
  background: var(--icb-burbuja, var(--icb-cabecera, #1f6feb)) !important; color: #fff !important;
  box-shadow: 0 14px 34px rgba(13,34,71,.28), inset 0 1px 0 rgba(255,255,255,.18) !important;
  transition: transform .2s ease, border-radius .2s ease, box-shadow .2s ease;
  z-index: 2147483000; font: inherit; appearance: none;
}
.icb-burbuja:hover { transform: translateY(-3px); box-shadow: 0 18px 42px rgba(13,34,71,.34), inset 0 1px 0 rgba(255,255,255,.18); }
.icb-burbuja:focus-visible { outline: 3px solid color-mix(in srgb,var(--icb-burbuja,#1f6feb) 30%,transparent); outline-offset: 3px; }
.icb-burbuja[data-abierto="1"] { border-radius: 50%; transform: rotate(90deg); }
.icb-burbuja-default,.icb-burbuja-cerrar { position:absolute;inset:0;display:grid;place-items:center;transition:opacity .18s ease,transform .18s ease; }
.icb-burbuja-cerrar { opacity:0;transform:scale(.7) rotate(-90deg); }
.icb-burbuja[data-abierto="1"] .icb-burbuja-default { opacity:0;transform:scale(.65); }
.icb-burbuja[data-abierto="1"] .icb-burbuja-cerrar { opacity:1;transform:scale(1) rotate(-90deg); }
.icb-burbuja img { width:100%;height:100%;object-fit:cover; }
.icb-burbuja svg,.icb-cabecera svg,.icb-enviar svg { width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }

.icb-panel {
  position: fixed; right: 22px; bottom: 96px; width: 380px; max-width: calc(100vw - 32px);
  height: 560px; max-height: calc(100vh - 128px); display: flex; flex-direction: column;
  overflow: hidden; border: 1px solid rgba(17,34,68,.1); border-radius: 24px;
  background: var(--icb-fondo,#fff); color: #131722;
  box-shadow: 0 30px 80px rgba(15,30,55,.26), 0 6px 18px rgba(15,30,55,.1);
  font: 14px/1.5 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(14px) scale(.97);
  transform-origin: bottom right; transition: opacity .2s ease,transform .24s cubic-bezier(.2,.8,.2,1),visibility .2s;
  z-index: 2147483000;
}
.icb-panel[data-abierto="1"] { opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1); }
.icb-cabecera {
  min-height: 78px; display:flex;align-items:center;gap:12px;padding:15px 17px;
  color:#fff;background:var(--icb-cabecera,#1f6feb);
  box-shadow:inset 0 -1px 0 rgba(0,0,0,.08);position:relative;
}
.icb-cabecera::after { content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.13),transparent 55%);pointer-events:none; }
.icb-avatar { width:42px;height:42px;display:grid;place-items:center;flex:none;overflow:hidden;border:1px solid rgba(255,255,255,.26);border-radius:13px;background:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.18); }
.icb-avatar img { width:100%;height:100%;object-fit:cover; }
.icb-avatar svg { width:19px;height:19px; }
.icb-identidad { min-width:0;display:block;position:relative;z-index:1; }
.icb-identidad strong { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;letter-spacing:-.01em; }
.icb-identidad small { display:flex;align-items:center;gap:6px;margin-top:2px;color:rgba(255,255,255,.78);font-size:11px; }
.icb-identidad small i { width:7px;height:7px;border:2px solid rgba(255,255,255,.7);border-radius:50%;background:#49e6b4;box-shadow:0 0 0 3px rgba(73,230,180,.16); }
.icb-cerrar { width:36px;height:36px;display:grid;place-items:center;margin-left:auto;padding:0;position:relative;z-index:1;border:1px solid rgba(255,255,255,.14) !important;border-radius:8px !important;color:#fff !important;background:rgba(0,0,0,.1) !important;cursor:pointer;transition:.18s;font:inherit;appearance:none; }
.icb-cerrar:hover { background:rgba(0,0,0,.2) !important; }
.icb-cerrar svg { width:18px;height:18px; }

.icb-mensajes { flex:1;overflow-y:auto;padding:20px 17px;display:flex;flex-direction:column;gap:11px;background:linear-gradient(180deg,color-mix(in srgb,var(--icb-fondo,#fff) 96%,#eaf1ff 4%),var(--icb-fondo,#fff));scroll-behavior:smooth; }
.icb-mensajes::-webkit-scrollbar { width:5px; }
.icb-mensajes::-webkit-scrollbar-thumb { border-radius:99px;background:rgba(90,105,130,.25); }
.icb-msg { max-width:84%;padding:10px 13px;border-radius:17px;word-wrap:break-word;box-shadow:0 2px 7px rgba(15,30,55,.05);animation:icb-entrada .2s ease both; }
.icb-msg p { margin:0; }
.icb-msg a { color:inherit;font-weight:600;text-underline-offset:2px; }
.icb-msg[data-rol="user"] { align-self:flex-end;border-bottom-right-radius:5px;background:var(--icb-cabecera,#1f6feb);color:#fff;box-shadow:0 5px 14px color-mix(in srgb,var(--icb-cabecera,#1f6feb) 24%,transparent); }
.icb-msg[data-rol="assistant"] { align-self:flex-start;border:1px solid rgba(30,48,77,.06);border-bottom-left-radius:5px;background:var(--icb-respuesta-fondo,#f1f3f5);color:var(--icb-respuesta-texto,#111); }
.icb-msg[data-rol="error"] { align-self:center;max-width:92%;border:1px solid rgba(198,139,26,.18);background:#fff7df;color:#694900;font-size:12px;text-align:center;box-shadow:none; }
.icb-escribiendo { min-width:58px;display:flex;align-items:center;justify-content:center;gap:4px;padding-block:14px; }
.icb-escribiendo i { width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.35;animation:icb-punto 1s infinite ease-in-out; }
.icb-escribiendo i:nth-child(2) { animation-delay:.14s; }.icb-escribiendo i:nth-child(3) { animation-delay:.28s; }

.icb-pie { display:flex;align-items:center;gap:9px;padding:13px 14px 14px;border-top:1px solid rgba(20,39,69,.08);background:var(--icb-fondo,#fff); }
.icb-input { min-width:0;height:45px;flex:1;padding:0 16px;border:1px solid rgba(28,48,80,.14) !important;border-radius:14px !important;outline:0;color:#171b24 !important;background:color-mix(in srgb,var(--icb-fondo,#fff) 94%,#8295b5 6%) !important;font:inherit;transition:.18s;appearance:none; }
.icb-input::placeholder { color:#8792a2; }
.icb-input:focus { border-color:color-mix(in srgb,var(--icb-cabecera,#1f6feb) 60%,#fff) !important;box-shadow:0 0 0 3px color-mix(in srgb,var(--icb-cabecera,#1f6feb) 13%,transparent) !important;background:var(--icb-fondo,#fff) !important; }
.icb-enviar { width:45px;height:45px;display:grid;place-items:center;flex:none;padding:0;border:0 !important;border-radius:14px !important;background:var(--icb-cabecera,#1f6feb) !important;color:#fff !important;cursor:pointer;box-shadow:0 8px 18px color-mix(in srgb,var(--icb-cabecera,#1f6feb) 25%,transparent) !important;transition:.18s;font:inherit;appearance:none; }
.icb-enviar:hover:not(:disabled) { transform:translateY(-2px);filter:brightness(1.06); }
.icb-enviar:disabled { opacity:.45;cursor:default;box-shadow:none !important; }
/* El ícono de enviar está geométricamente centrado en su viewBox, pero al ser
   una flecha diagonal el ojo lo percibe corrido hacia arriba-izquierda; se
   nudgea unos px para que se vea centrado de verdad. */
.icb-enviar svg { width:19px;height:19px;transform:translate(1.5px,1.5px); }

.icb-confirmacion { align-self:flex-start!important;display:flex;flex-direction:column;gap:9px; }
.icb-confirmacion-parametros { font-size:12px;opacity:.7;word-break:break-word; }
.icb-confirmacion-acciones { display:flex;gap:7px; }
.icb-confirmacion-btn { min-height:34px;padding:6px 13px;border:0 !important;border-radius:10px !important;cursor:pointer;font:inherit;font-size:12px;font-weight:600;appearance:none; }
.icb-confirmacion-btn:disabled { opacity:.5;cursor:default; }
.icb-confirmacion-si { background:var(--icb-cabecera,#1f6feb) !important;color:#fff !important; }
.icb-confirmacion-no { background:rgba(100,115,135,.13) !important;color:inherit !important; }

@keyframes icb-entrada { from{opacity:0;transform:translateY(5px)} to{opacity:1;transform:none} }
@keyframes icb-punto { 0%,60%,100%{transform:translateY(0);opacity:.3} 30%{transform:translateY(-3px);opacity:.8} }
@media (max-width:520px) {
  .icb-burbuja{right:16px;bottom:16px;width:56px;height:56px;border-radius:18px}
  .icb-panel{right:10px;bottom:82px;width:calc(100vw - 20px);height:min(620px,calc(100vh - 98px));max-height:none;border-radius:22px}
}
@media (prefers-reduced-motion:reduce) { .icb-burbuja,.icb-panel,.icb-msg,.icb-escribiendo i{animation:none;transition:none} }
