/* PRODI Chat Widget — Clean stylesheet (deduplicated)
   - Keeps Prodi colors
   - Modern bubbles + tails
   - Compose bar with inline send icon
   - Reset button + confirm modal
*/

.prodi-chat-root{
  --prodi-accent: #0B57D0;
  --prodi-header: #4386f1b6;
  --prodi-header-2: #255fc2a8;
  --prodi-surface: #ffffff;
  --prodi-body-bg: #F6F7FB;
  --prodi-border: rgba(0,0,0,.10);
  --prodi-text: #0b1320;
  --prodi-muted: rgba(0,0,0,.55);

  --prodi-bot-bubble: #ffffff;
  --prodi-user-bubble: #E7F0FF;
  --prodi-user-text: #0b1320;

  --prodi-launcher-border-color: #000000;
  --prodi-launcher-border-width: 2px;

  --prodi-bot-bubble-border-color: rgba(0,0,0,.06);
  --prodi-bot-bubble-border-width: 1px;

  --prodi-user-bubble-border-color: rgba(11,87,208,.10);
  --prodi-user-bubble-border-width: 1px;

  --prodi-panel-width: 380px;
  --prodi-panel-height: 560px;
  --prodi-panel-radius: 22px;
  --prodi-toggle-size: 90px;
  --prodi-toggle-core-size: 84px;
  --prodi-bubble-radius: 18px;

  position: fixed;
  z-index: 999999;
  bottom: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

/* Theme isolation */
.prodi-chat-root,
.prodi-chat-root *{ box-sizing: border-box; }

.prodi-chat-root button,
.prodi-chat-root textarea{
  font-family: inherit;
  -webkit-appearance: none;
  appearance: none;
}
.prodi-chat-root button{ font: inherit; }
.prodi-chat-root img{ max-width: none; }

.prodi-chat-root.bottom-left{ left: 18px; align-items: flex-start; }
.prodi-chat-root.bottom-right{ right: 18px; align-items: flex-end; }

/* ---------------------------
   Launcher (floating button)
---------------------------- */
.prodi-chat-toggle{
  width: var(--prodi-toggle-size);
  height: var(--prodi-toggle-size);
  padding: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .18s ease, filter .18s ease;
  background: #ffffff;
  border: 0;
  outline: none;
  box-shadow: none;
  border-radius: 999px;
}

.prodi-chat-toggle::before,
.prodi-chat-toggle::after{
  content: none !important;
}

.prodi-chat-toggle:hover{
  transform: translateY(-2px) scale(1.05);
  filter: brightness(1.05);
}

.prodi-chat-toggle:active{
  transform: translateY(0) scale(.98);
}

.prodi-chat-toggle.hidden{
  display: none;
}

.prodi-chat-toggle:focus,
.prodi-chat-toggle:focus-visible{
  outline: none !important;
  box-shadow: none !important;
}

.prodi-chat-toggle-halo{
  display: none !important;
}

.prodi-chat-toggle-core{
  width: var(--prodi-toggle-core-size);
  height: var(--prodi-toggle-core-size);
  padding: 0;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  border: var(--prodi-launcher-border-width) solid var(--prodi-launcher-border-color);
  box-shadow:
    0 10px 24px rgba(0,0,0,.18),
    0 3px 10px rgba(0,0,0,.10);
  position: relative;
}

.prodi-chat-toggle .prodi-avatar-live,
.prodi-chat-toggle .prodi-avatar-move{
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
}

.prodi-chat-toggle-avatar{
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center 58%;
  display: block;
  pointer-events: none;
  border-radius: 0;
  background: #ffffff;
}

.prodi-chat-toggle-core::before{
  content: "";
  position: absolute;
  inset: -30%;
  background: linear-gradient(
    120deg,
    rgba(255,255,255,0) 35%,
    rgba(255,255,255,.30) 50%,
    rgba(255,255,255,0) 65%
  );
  transform: translateX(-60%) rotate(8deg);
  opacity: 0;
  transition: opacity .2s ease, transform .35s ease;
  pointer-events: none;
}

.prodi-chat-toggle:hover .prodi-chat-toggle-core::before{
  opacity: 1;
  transform: translateX(60%) rotate(8deg);
}

.prodi-chat-toggle:hover .prodi-chat-toggle-core{
  box-shadow:
    0 14px 30px rgba(0,0,0,.22),
    0 4px 14px rgba(11,87,208,.14);
}


/* ---------------------------
   Peek bubble
---------------------------- */
.prodi-chat-peek{
  max-width: min(420px, calc(100vw - 80px));  background: #fff;
  color: var(--prodi-text);
  border-radius: 16px;
  padding: 10px 12px;
  box-shadow: 0 12px 30px rgba(0,0,0,.16);
  border: 1px solid rgba(0,0,0,.06);
  font-size: 14px;
  line-height: 1.25;
}
.prodi-chat-peek.hidden{ display:none; }

/* ---------------------------
   Panel
---------------------------- */
.prodi-chat-panel{
  width: var(--prodi-panel-width, 380px);
  max-width: calc(100vw - 36px);
  height: var(--prodi-panel-height, 560px);
  max-height: calc(100vh - 120px);
  background: var(--prodi-surface);
  border-radius: var(--prodi-panel-radius, 22px);
  box-shadow: 0 26px 80px rgba(0,0,0,.26);
  border: 1px solid rgba(0,0,0,.08);
  overflow: hidden;
  display: none;
  position: relative;
}
.prodi-chat-panel.open{ display:flex; flex-direction: column; }


.prodi-chat-panel.max{
  border-radius: 16px;
}

/* Header */
.prodi-chat-header{
  padding: 18px 18px 16px;
  display:flex;
  align-items: center;
  justify-content: space-between;
  color: #fff;
  background: linear-gradient(135deg, var(--prodi-header), var(--prodi-header-2));
}

.prodi-chat-header-left{
  display:flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.prodi-chat-header-avatar-wrap{
  width: 52px;
  height: 52px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow: hidden;
  flex: 0 0 auto;
}

.prodi-chat-header-avatar{
  width: 46px;
  height: 46px;
  object-fit: contain;
  object-position: center 56%;
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.18));
}

.prodi-chat-title-wrap{
  display:flex;
  flex-direction: column;
  min-width: 0;
}

.prodi-chat-title{
  font-weight: 800;
  font-size: 18px;
  line-height: 1.08;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.prodi-chat-subtitle{
  font-size: 13px;
  line-height: 1.2;
  opacity: .96;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.prodi-chat-header-actions{
  display:flex;
  align-items:center;
  gap: 8px;
}

.prodi-chat-icon-btn{
  all: unset;
  box-sizing: border-box;
  width: 34px;
  height: 34px;
  background: #255fc2a8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
}
.prodi-chat-icon-btn:hover{ background: rgba(255,255,255,.16); }
.prodi-chat-icon-btn:active{ transform: scale(.98); }
.prodi-chat-icon-btn:focus,
.prodi-chat-icon-btn:focus-visible{ outline: none !important; box-shadow: none !important; }

.prodi-ico{ width: 18px; height: 18px; display: block; color: currentColor; }

/* Body */
.prodi-chat-body{
  padding: 14px 14px 18px;
  overflow: auto;
  flex: 1 1 auto;
  background: var(--prodi-body-bg);
}

.prodi-chat-body::-webkit-scrollbar{ width: 10px; }
.prodi-chat-body::-webkit-scrollbar-track{ background: transparent; }
.prodi-chat-body::-webkit-scrollbar-thumb{
  background: rgba(0,0,0,.18);
  border-radius: 999px;
  border: 3px solid var(--prodi-body-bg);
}

.prodi-chat-date{
  display: inline-block;
  margin: 6px auto 12px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.06);
  color: rgba(0,0,0,.60);
  font-size: 12px;
}

/* ---------------------------
   Messages
---------------------------- */
.prodi-chat-row{
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}

.prodi-chat-row.bot{
align-items:flex-start;
}

.prodi-chat-row.user{
align-items:flex-end;
}

.prodi-chat-line{
  display:flex;
  align-items: flex-end;
  gap: 10px;
  max-width: 92%;
}

.prodi-chat-row.user .prodi-chat-line{ width: 100%; justify-content: flex-end; }
.prodi-chat-row.user .prodi-chat-line{
justify-content:flex-end;
}

.prodi-chat-row.bot .prodi-chat-line{
justify-content:flex-start;
}

.prodi-chat-bubble.user{
margin-left:auto;
}

.prodi-chat-bubble.bot{
margin-right:auto;
}
.prodi-chat-mini-avatar-wrap{
  width: 48px;
  height: 48px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  flex: 0 0 auto;
}

.prodi-chat-mini-avatar{
  width: 44px;
  height: 44px;
  object-fit: cover;
  border-radius: 50%;
}

.prodi-chat-bubble{
  max-width: calc(100% - 20px);
  margin-left: 10px;
  margin-right: 10px;
  border-radius: var(--prodi-bubble-radius, 18px);
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  position: relative;
}

.prodi-chat-bubble.bot p + ul{
margin-top:.3em;
}
.prodi-chat-bubble.bot{
  background: var(--prodi-bot-bubble);
  color: var(--prodi-text);
  border: var(--prodi-bot-bubble-border-width) solid var(--prodi-bot-bubble-border-color);
}

.prodi-chat-bubble.user{
  background: var(--prodi-user-bubble);
  color: var(--prodi-user-text);
  border: var(--prodi-user-bubble-border-width) solid var(--prodi-user-bubble-border-color);
  padding: 9px 18px 9px 14px;
  margin-right: 16px;
  line-height: 1.35;
}

.prodi-chat-bubble.bot::after{
  content: "";
  position: absolute;
  left: -6px;
  bottom: 10px;
  width: 14px;
  height: 14px;
  background: var(--prodi-bot-bubble);
  border-left: var(--prodi-bot-bubble-border-width) solid var(--prodi-bot-bubble-border-color);
  border-bottom: var(--prodi-bot-bubble-border-width) solid var(--prodi-bot-bubble-border-color);
  transform: rotate(45deg);
}

.prodi-chat-bubble.user::after{
  content: "";
  position: absolute;
  right: -7px;
  bottom: 11px;
  width: 12px;
  height: 12px;
  background: var(--prodi-user-bubble);
  border-right: var(--prodi-user-bubble-border-width) solid var(--prodi-user-bubble-border-color);
  border-bottom: var(--prodi-user-bubble-border-width) solid var(--prodi-user-bubble-border-color);
  transform: rotate(45deg);
}

.prodi-chat-root.prodi-no-tails .prodi-chat-bubble.bot::after,
.prodi-chat-root.prodi-no-tails .prodi-chat-bubble.user::after{
  display: none;
}

.prodi-chat-meta{
  font-size: 11px;
  color: rgba(0,0,0,.55);
  padding: 0 6px;
}

.prodi-chat-row.user .prodi-chat-meta{ align-self: flex-end; }

.prodi-chat-thinking{ opacity: .85; font-style: italic; }

/* ---------------------------
   Footer (composer)
---------------------------- */
.prodi-chat-footer{
  padding: 12px 12px 14px;
  border-top: 1px solid rgba(0,0,0,.08);
  display:flex;
  gap: 10px;
  background: #fff;
  align-items: flex-end;
}

/* reset button (left) */
.prodi-chat-footer-reset{
  width: 44px;
  height: 44px;
  border: 1px solid rgba(0,0,0,.18);
  background: #fff;
  box-shadow: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.prodi-chat-footer-reset:hover{
  background: rgba(0,0,0,.03);
  border-color: rgba(0,0,0,.24);
  transform: translateY(-1px);
}
.prodi-chat-footer-reset:active{ transform: translateY(0); }
.prodi-chat-footer-reset .prodi-ico{ width: 20px; height: 20px; color: rgba(0,0,0,.62); }

/* compose wrapper */
.prodi-chat-compose{ position: relative; flex: 1 1 auto; display: flex; }

.prodi-chat-input{
  width: 100%;
  flex: 1 1 auto;
  resize: none;
  border-radius: 6px;
  border: 1px solid rgba(0,0,0,.22);
  background: #fff;
  box-shadow: none;
  padding: 11px 46px 11px 12px; /* room for send icon */
  font-size: 14px;
  line-height: 1.25;
  outline: none;
  min-height: 44px;
}

.prodi-chat-input:focus{
  border-color: rgba(0,0,0,.35);
}

/* send icon inside the input (subtle like reference) */
.prodi-chat-send.prodi-chat-send-inline{
  position: absolute;
  right: 10px;
  bottom: 8px;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  background: transparent;
  box-shadow: none;
  border: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: rgba(0,0,0,.30);
  transition: transform .12s ease, color .12s ease, background .12s ease;
}

.prodi-chat-send.prodi-chat-send-inline:hover{
  background: rgba(0,0,0,.04);
  color: rgba(0,0,0,.55);
  transform: translateY(-1px);
}

.prodi-chat-send.prodi-chat-send-inline:active{ transform: translateY(0); }

/* backward compat if theme uses these */
.prodi-chat-send-icon{ display:none; }

/* ---------------------------
   Confirm modal (reset)
---------------------------- */
.prodi-chat-confirm{
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(0,0,0,.35);
  backdrop-filter: blur(6px);
  z-index: 3;
}
.prodi-chat-confirm.open{ display: flex; }

.prodi-chat-confirm-card{
  width: 100%;
  max-width: 520px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,.28);
  border: 1px solid rgba(0,0,0,.10);
  padding: 14px 14px 12px;
}

.prodi-chat-confirm-title{
  font-weight: 800;
  font-size: 15px;
  margin-bottom: 6px;
  color: var(--prodi-text);
}

.prodi-chat-confirm-text{
  font-size: 13px;
  color: rgba(0,0,0,.65);
  margin-bottom: 12px;
  line-height: 1.35;
}

.prodi-chat-confirm-actions{ display:flex; gap: 10px; }

.prodi-chat-confirm-cancel{
  flex: 1 1 auto;
  height: 40px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.18);
  background: #fff;
  cursor: pointer;
  font-weight: 700;
  color: rgba(0,0,0,.70);
}

.prodi-chat-confirm-ok{
  flex: 1 1 auto;
  height: 40px;
  border-radius: 10px;
  border: 0;
  background: var(--prodi-header);
  color: #fff;
  cursor: pointer;
  font-weight: 800;
  box-shadow: 0 14px 26px rgba(11,87,208,.18);
}

.prodi-chat-confirm-ok:hover{ filter: brightness(1.04); }
.prodi-chat-confirm-ok:active{ transform: scale(.99); }

/* ---------------------------
   Markdown (bot)
---------------------------- */
.prodi-chat-bubble.bot p{ margin: 0 0 .6em; }
.prodi-chat-bubble.bot p:last-child{ margin-bottom: 0; }

.prodi-chat-bubble.bot ul,
.prodi-chat-bubble.bot ol{
  margin: .4em 0 .6em 0;
  padding-left: 1.2em;
}

.prodi-chat-bubble.bot li{
  margin: .3em 0;
}

.prodi-chat-bubble.bot h1,
.prodi-chat-bubble.bot h2,
.prodi-chat-bubble.bot h3{
  margin: .6em 0 .35em;
  line-height: 1.2;
}
.prodi-chat-bubble.bot h1{ font-size: 1.05em; }
.prodi-chat-bubble.bot h2{ font-size: 1.00em; }
.prodi-chat-bubble.bot h3{ font-size: .95em; }

.prodi-chat-bubble.bot blockquote{
  margin: .6em 0;
  padding: .2em 0 .2em .8em;
  border-left: 3px solid rgba(0,0,0,.18);
  color: rgba(0,0,0,.72);
}

.prodi-chat-bubble.bot pre{
  background: rgba(0,0,0,.06);
  padding: 10px 12px;
  border-radius: 12px;
  overflow: auto;
}

.prodi-chat-bubble.bot code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 13px;
  padding: .12em .35em;
  border-radius: 8px;
  background: rgba(0,0,0,.06);
}

/* Copy button (if enabled in JS) */
.prodi-copy-btn{
  position: absolute;
  top: 8px;
  right: 8px;
  border: 0;
  border-radius: 10px;
  padding: 6px 8px;
  cursor: pointer;
  font-size: 12px;
  background: rgba(0,0,0,.72);
  color: #fff;
}

/* ---------------------------
   Responsive
---------------------------- */
@media (max-width: 768px){
  .prodi-chat-panel{
    width: calc(100vw - 24px);
    height: 50vh !important;
    max-height: 50vh !important;
  }

  .prodi-chat-panel.max{
    width: 90vw !important;
    height: 90dvh !important;
    max-width: 90vw !important;
    max-height: 90dvh !important;
    border-radius: 16px !important;
  }
}


/* =========================================
   Botones HEADER: sin fondo ni borde, iconos blancos
   ========================================= */
.prodi-chat-root .prodi-chat-icon-btn{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #fff !important;
  border-radius: 10px;
}

.prodi-chat-root .prodi-chat-icon-btn:hover{
  background: rgba(255,255,255,.14) !important;
}

.prodi-chat-root .prodi-chat-icon-btn:active{
  transform: scale(.98);
}

/* Por si el tema mete focus/borde */
.prodi-chat-root .prodi-chat-icon-btn:focus,
.prodi-chat-root .prodi-chat-icon-btn:focus-visible{
  outline: none !important;
  box-shadow: none !important;
}

/* =========================================
   Botón RESET (abajo izquierda): visible y limpio
   ========================================= */
.prodi-chat-root .prodi-chat-footer-reset{
  width: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.14) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.05) !important;
  border-radius: 12px !important;
}

.prodi-chat-root .prodi-chat-footer-reset:hover{
  background: rgba(0,0,0,.04) !important;
  border-color: rgba(0,0,0,.20) !important;
}

.prodi-chat-root .prodi-chat-footer-reset .prodi-ico{
  width: 18px !important;
  height: 18px !important;
  color: rgba(0,0,0,.62) !important;
}

.prodi-chat-root .prodi-chat-footer-reset,
.prodi-chat-root .prodi-chat-footer-reset *{
  outline: none !important;
}

.prodi-chat-root .prodi-chat-footer-reset *{
  box-shadow: none !important;
}

/* ===== Peek flotante encima del icono (sin afectar layout) ===== */
.prodi-chat-root{ position: fixed; } /* ya lo tienes, esto no cambia nada */

.prodi-chat-peek{
  position: absolute;
  bottom: calc(var(--prodi-toggle-size,90px) + 28px);  z-index: 2;
  cursor: pointer;
}

/* Alinear según posición del widget */
.prodi-chat-root.bottom-left .prodi-chat-peek{
  left: 50%;
  transform: translateX(-35%);
}
.prodi-chat-root.bottom-right .prodi-chat-peek{
  right: 0;
}

/* “Cola” apuntando al icono */
.prodi-chat-peek::after{
  content: "";
  position: absolute;
  bottom: -8px;
  width: 12px;
  height: 12px;
  background: #fff;
  border-right: 1px solid rgba(0,0,0,.06);
  border-bottom: 1px solid rgba(0,0,0,.06);
  transform: rotate(45deg);
}

.prodi-chat-root.bottom-left .prodi-chat-peek::after{
  left: calc(var(--prodi-toggle-size,90px) / 2);
}

.prodi-chat-root.bottom-right .prodi-chat-peek::after{
  right: calc(var(--prodi-toggle-size,90px) / 2);
}
/* Hover suave para indicar que es clicable */
.prodi-chat-peek:hover{
  transform: translateY(-1px);
}


/* ===== Peek (saludo flotante) más grande y legible ===== */
.prodi-chat-peek{
  max-width: 420px !important;     /* más ancho */
  min-width: 260px !important;     /* evita que quede “corto” */
  padding: 14px 16px !important;   /* más aire */
  font-size: 15px !important;      /* un pelín más grande */
  line-height: 1.35 !important;
  border-radius: 18px !important;
  box-shadow: 0 18px 44px rgba(0,0,0,.20) !important;
}

/* Si quieres que el texto no se corte raro */
.prodi-chat-peek{
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

/* ===== Thinking: texto + 3 puntos bien colocados (sin solape) ===== */
.prodi-chat-bubble.prodi-chat-thinking{
  font-style: normal !important;
  opacity: .88 !important;
  color: rgba(0,0,0,.62) !important;
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(0,0,0,.06) !important;

  display: inline-flex !important;
  align-items: center !important;

  white-space: nowrap !important;
}

/* ===== Thinking: efecto 1→2→3 puntos, pegado a "pensando" y un poco abajo ===== */
.prodi-chat-bubble.prodi-chat-thinking{
  gap: 0 !important;                 /* más pegado */
  align-items: baseline !important;
}

/* dots: 3 puntos + animación visible + un poco abajo y pegado */
.prodi-thinking-dots{
  display: inline-block !important;
  margin-left: 2px !important;
  width: 30px !important;
  height: 8px !important;

  background:
    radial-gradient(circle closest-side, currentColor 92%, transparent) 0   50%/4px 4px no-repeat,
    radial-gradient(circle closest-side, currentColor 92%, transparent) 13px 50%/4px 4px no-repeat,
    radial-gradient(circle closest-side, currentColor 92%, transparent) 26px 50%/4px 4px no-repeat !important;

  transform: translateY(2px) !important;
  opacity: .55 !important;
  animation: prodiDotsFloat 1.1s infinite ease-in-out !important;
}

@keyframes prodiDotsFloat{
  0%   { opacity: .25; transform: translateY(2px); }
  50%  { opacity: .75; transform: translateY(1px); }
  100% { opacity: .25; transform: translateY(2px); }
}

/* ===== Thinking dots: estilo y posicion (animacion la hace el JS) ===== */
.prodi-chat-root .prodi-chat-bubble.prodi-chat-thinking .prodi-thinking-dots{
  display: inline-block !important;
  width: 26px !important;
  text-align: left !important;
  margin-left: 2px !important;
  transform: translateY(3px) !important;
  opacity: .6 !important;
  background: none !important;
  animation: none !important;
  letter-spacing: 3px !important;
}
/* Thinking: burbuja un poco más grande */
.prodi-chat-bubble.bot.prodi-chat-thinking{
  padding: 12px 16px !important;   /* más grande (antes 10px 12px) */
  font-size: 15px !important;      /* un pelín más */
  border-radius: 20px !important;  /* más “pill” */
  max-width: 86% !important;       /* por si quedaba estrecha */
}

/* ===== Modal reiniciar: botones sin fondo + borde azul ===== */
.prodi-chat-root .prodi-chat-confirm-actions .prodi-chat-confirm-cancel,
.prodi-chat-root .prodi-chat-confirm-actions .prodi-chat-confirm-ok{
  background: transparent !important;
  border: 1px solid var(--prodi-accent) !important; /* azulito */
  box-shadow: none !important;
  color: var(--prodi-accent) !important;
}

/* Hover suave */
.prodi-chat-root .prodi-chat-confirm-actions .prodi-chat-confirm-cancel:hover,
.prodi-chat-root .prodi-chat-confirm-actions .prodi-chat-confirm-ok:hover{
  background: rgba(11,87,208,.08) !important;
}

/* Focus limpio (sin borde raro del tema) */
.prodi-chat-root .prodi-chat-confirm-actions .prodi-chat-confirm-cancel:focus,
.prodi-chat-root .prodi-chat-confirm-actions .prodi-chat-confirm-ok:focus,
.prodi-chat-root .prodi-chat-confirm-actions .prodi-chat-confirm-cancel:focus-visible,
.prodi-chat-root .prodi-chat-confirm-actions .prodi-chat-confirm-ok:focus-visible{
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(11,87,208,.18) !important;
}





.prodi-idle-breath .prodi-chat-toggle-core{
animation:prodiIdleBreath 4s ease-in-out infinite;
}

@keyframes prodiBounce{

0%{ transform:translateY(0) }

30%{ transform:translateY(-6px) }

60%{ transform:translateY(2px) }

100%{ transform:translateY(0) }

}

.prodi-bounce{
animation:prodiBounce .6s ease;
}

@keyframes prodiMessageIn{

0%{
opacity:0;
transform:translateY(12px) scale(.96);
}

100%{
opacity:1;
transform:translateY(0) scale(1);
}

}

.prodi-chat-row.animate{
animation:prodiMessageIn .25s ease;
}

@keyframes prodiThinkingFloat{

0%{ transform:translateY(0) }

50%{ transform:translateY(-2px) }

100%{ transform:translateY(0) }

}

.prodi-chat-bubble.prodi-chat-thinking{
animation:prodiThinkingFloat 1.4s ease-in-out infinite;
}

@keyframes prodiNotify{

0%{
box-shadow:0 0 0 0 rgba(11,87,208,.6);
}

70%{
box-shadow:0 0 0 16px rgba(11,87,208,0);
}

100%{
box-shadow:0 0 0 0 rgba(11,87,208,0);
}

}

.prodi-notify{
animation:prodiNotify 1.2s ease;
}

@keyframes prodiAvatarFloat{

0%{ transform:translateY(0) }

50%{ transform:translateY(-3px) }

100%{ transform:translateY(0) }

}

.prodi-idle-breath .prodi-chat-toggle-avatar{
animation:prodiAvatarFloat 5s ease-in-out infinite;
}

@keyframes prodiResponseGlow{

0%{ filter:brightness(1) }

50%{ filter:brightness(1.25) }

100%{ filter:brightness(1) }

}

.prodi-notify .prodi-chat-toggle-core{
animation:prodiResponseGlow .8s ease;
}

@keyframes prodiStrongNotify{

0%{
transform:scale(1);
box-shadow:0 0 0 0 rgba(11,87,208,.7);
}

40%{
transform:scale(1.15);
box-shadow:0 0 0 20px rgba(11,87,208,0);
}

100%{
transform:scale(1);
}

}

.prodi-notify{
animation:prodiStrongNotify 1s ease;
}

@keyframes prodiShake{

0%{ transform:translateX(0) }

20%{ transform:translateX(-2px) }

40%{ transform:translateX(2px) }

60%{ transform:translateX(-2px) }

80%{ transform:translateX(2px) }

100%{ transform:translateX(0) }

}

.prodi-notify .prodi-chat-toggle-avatar{
animation:prodiShake .5s ease;
}

/* =================================
PRODI LOGO ANIMATION
================================= */

.prodi-avatar-live img{
width:78%;
height:78%;
border-radius:50%;
}
.prodi-avatar-live img{
animation:
  prodiBreath 5s ease-in-out infinite,
  prodiBlinkLogo 6s infinite;
}





/* brillo cuando responde */

@keyframes prodiLogoGlow{

0%{ filter:brightness(1); }

50%{ filter:brightness(1.25); }

100%{ filter:brightness(1); }

}

.prodi-notify .prodi-avatar-live img{
animation:prodiLogoGlow .8s ease;
}

/* ===== Header avatar: ajuste real ===== */
.prodi-chat-header-avatar-wrap .prodi-avatar-live,
.prodi-chat-header-avatar-wrap .prodi-avatar-move{
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 50%;
  background: #ffffff;
}

.prodi-chat-header-avatar{
  animation: none !important;
  will-change: transform;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center center;
  border-radius: 50% !important;
  filter: none !important;
  transform: none !important;
  background: transparent !important;
}
/* pequeño tilt al hover */

@keyframes prodiLogoTilt{

0%{ transform:rotate(0deg); }

50%{ transform:rotate(1deg); }

100%{ transform:rotate(0deg); }

}

.prodi-chat-toggle:hover img{
animation:prodiLogoTilt .5s ease;
}

/* PARPADEO OJOS */

@keyframes prodiBlinkLogo{

0%,92%,100%{
filter:brightness(1);
}

95%{
filter:brightness(.2);
}

}



.prodi-avatar-live{
  position:relative;
  overflow:hidden;
}

.prodi-avatar-move{
  will-change: transform;
  width:100%;
  height:100%;
}

.prodi-avatar-live{
  width:100%;
  height:100%;
  border-radius:50%;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* ===== Ajuste fino SOLO de burbujas ===== */

/* un poco más de aire entre mini-avatar y burbuja del bot */
.prodi-chat-row.bot .prodi-chat-line{
  gap: 12px;
}

/* BOT */
.prodi-chat-bubble.bot{
  padding: 11px 15px 11px 14px;
  margin-left: 12px;
  border-radius: 18px 18px 18px 13px;
}

.prodi-chat-bubble.bot::after{
  left: -7px;
  bottom: 12px;
  width: 12px;
  height: 12px;
  box-sizing: border-box;
}

/* USER */
.prodi-chat-bubble.user{
  padding: 10px 14px;
  margin-right: 10px;
  border-radius: 18px 18px 13px 18px;
  line-height: 1.35;
  overflow: visible;
}

.prodi-chat-bubble.user::before{
  content: none;
}

.prodi-chat-bubble.user::after{
  content: "";
  position: absolute;
  right: -5px;
  bottom: 10px;
  width: 9px;
  height: 9px;
  background: var(--prodi-user-bubble);
  border-right: var(--prodi-user-bubble-border-width) solid var(--prodi-user-bubble-border-color);
  border-bottom: var(--prodi-user-bubble-border-width) solid var(--prodi-user-bubble-border-color);
  transform: rotate(-45deg);
  box-sizing: border-box;
}

.prodi-chat-root.prodi-no-tails .prodi-chat-bubble.user::before,
.prodi-chat-root.prodi-no-tails .prodi-chat-bubble.user::after{
  display: none;
}

/* THINKING */
.prodi-chat-bubble.bot.prodi-chat-thinking{
  padding: 12px 18px !important;
  border-radius: 20px !important;
}

.prodi-chat-bubble.bot.prodi-chat-thinking::after{
  left: -6px !important;
  bottom: 13px !important;
  width: 10px !important;
  height: 10px !important;
}

.prodi-chat-toggle .prodi-chat-toggle-avatar{
  width: 80% !important;
  height: 80% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center 60% !important;
  display: block !important;
  border-radius: 0 !important;
  background: #ffffff !important;
}

/* ===== Ocultar recuadro azul del vídeo y dejar solo el círculo ===== */
.prodi-chat-toggle-core{
  background: #ffffff !important;
  overflow: hidden !important;
}

.prodi-chat-toggle .prodi-avatar-live,
.prodi-chat-toggle .prodi-avatar-move{
  border-radius: 50% !important;
  overflow: hidden !important;
  background: #ffffff !important;
}

.prodi-chat-toggle .prodi-chat-toggle-avatar{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  clip-path: circle(49% at 50% 50%) !important;
  transform: scale(1.02) !important;
  background: #ffffff !important;
  border-radius: 0 !important;
}


/* =========================================
   Aislar el launcher de estilos globales del tema
   ========================================= */
.prodi-chat-root button.prodi-chat-toggle,
.prodi-chat-root .prodi-chat-toggle[type="button"]{
  -webkit-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  color: inherit !important;
}

.prodi-chat-root button.prodi-chat-toggle:hover,
.prodi-chat-root .prodi-chat-toggle[type="button"]:hover,
.prodi-chat-root button.prodi-chat-toggle:focus,
.prodi-chat-root .prodi-chat-toggle[type="button"]:focus,
.prodi-chat-root button.prodi-chat-toggle:focus-visible,
.prodi-chat-root .prodi-chat-toggle[type="button"]:focus-visible,
.prodi-chat-root button.prodi-chat-toggle:active,
.prodi-chat-root .prodi-chat-toggle[type="button"]:active{
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

.prodi-chat-root .prodi-chat-toggle-core{
  background: #ffffff !important;
  border: var(--prodi-launcher-border-width) solid var(--prodi-launcher-border-color) !important;
}

.prodi-chat-root .prodi-chat-toggle::before,
.prodi-chat-root .prodi-chat-toggle::after{
  content: none !important;
}