:root{
  --victoria-z: 999999;
  --victoria-brand: #243F4A;
  --victoria-brand-2: #2F5260;
  --victoria-bg: #ffffff;
  --victoria-text: #162334;
  --victoria-text-soft: #6b7788;
  --victoria-border: rgba(20,34,53,.10);
  --victoria-shadow: 0 20px 60px rgba(13,22,35,.18), 0 8px 20px rgba(13,22,35,.10);
  --victoria-radius-xl: 24px;
  --victoria-fab-size: 86px;
  --victoria-panel-width: min(420px, calc(100vw - 24px));
  --victoria-panel-height: min(720px, calc(100vh - 110px));
  --victoria-ease: 240ms cubic-bezier(.22,1,.36,1);
}

#victoria-widget-root{
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: var(--victoria-z);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  isolation: isolate;
  -webkit-tap-highlight-color: transparent;
}

#victoria-widget-root *,
#victoria-widget-root *::before,
#victoria-widget-root *::after{
  box-sizing: border-box;
}

/* FAB */

#victoria-widget-root .victoria-fab-wrap{
  position: relative;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

#victoria-widget-root .victoria-fab{
  position: relative;
  width: var(--victoria-fab-size);
  height: var(--victoria-fab-size);
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  border-radius: 50%;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: transform var(--victoria-ease);
  overflow: visible;
}

#victoria-widget-root .victoria-fab:hover{
  transform: translateY(-2px);
}

#victoria-widget-root .victoria-fab:active{
  transform: scale(.985);
}

#victoria-widget-root .victoria-fab:focus-visible{
  outline: 2px solid rgba(36,63,74,.22);
  outline-offset: 4px;
}

#victoria-widget-root .victoria-fab-shell{
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  background: transparent;
  box-shadow: 0 18px 40px rgba(13,22,35,.16), 0 6px 16px rgba(13,22,35,.10);
}

#victoria-widget-root .victoria-avatar-shell{
  position: relative;
  width: 56px;
  height: 56px;
  min-width: 56px;
  border-radius: 50%;
  overflow: hidden;
  background: transparent;
  box-shadow: 0 8px 18px rgba(13,22,35,.10);
}

#victoria-widget-root .victoria-fab-image,
#victoria-widget-root .victoria-fab-video,
#victoria-widget-root .victoria-avatar-poster,
#victoria-widget-root .victoria-avatar-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center center;
  border-radius: inherit;
  border: 0;
  outline: 0;
  background: transparent !important;
  box-shadow: none !important;
  backface-visibility: hidden;
  transform: translateZ(0);
}

#victoria-widget-root .victoria-fab-image,
#victoria-widget-root .victoria-avatar-poster{
  opacity: 1;
  visibility: visible;
  transition: opacity var(--victoria-ease), visibility var(--victoria-ease);
}

#victoria-widget-root .victoria-fab-video,
#victoria-widget-root .victoria-avatar-video{
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--victoria-ease), visibility var(--victoria-ease);
}

#victoria-widget-root .victoria-fab-shell.is-video-active .victoria-fab-image,
#victoria-widget-root .victoria-avatar-shell.is-video-active .victoria-avatar-poster{
  opacity: 0;
  visibility: hidden;
}

#victoria-widget-root .victoria-fab-shell.is-video-active .victoria-fab-video,
#victoria-widget-root .victoria-avatar-shell.is-video-active .victoria-avatar-video{
  opacity: 1;
  visibility: visible;
}

#victoria-widget-root .victoria-fab-shell.is-idle{
  animation: victoriaFabBreath 3.8s ease-in-out infinite;
}

#victoria-widget-root.is-open .victoria-fab-shell.is-idle{
  animation: none;
}

@keyframes victoriaFabBreath{
  0%, 100%{ transform: scale(1); }
  50%{ transform: scale(1.028); }
}

#victoria-widget-root .victoria-fab-status{
  position: absolute;
  right: 4px;
  bottom: 4px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #22c55e;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(34,197,94,.35);
}

#victoria-widget-root .victoria-hover-bubble{
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,.96);
  color: var(--victoria-text);
  font-size: 12px;
  line-height: 1.2;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(20,34,53,.08);
  white-space: nowrap;
  box-shadow: 0 10px 25px rgba(13,22,35,.10);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--victoria-ease), transform var(--victoria-ease), visibility var(--victoria-ease);
  pointer-events: none;
}

#victoria-widget-root .victoria-fab:hover .victoria-hover-bubble{
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(-2px);
}

/* PANEL */

#victoria-widget-root .victoria-panel{
  position: absolute;
  right: 0;
  bottom: calc(var(--victoria-fab-size) + 14px);
  width: var(--victoria-panel-width);
  height: var(--victoria-panel-height);
  max-height: min(720px, calc(100vh - 110px));
  background: rgba(255,255,255,.96);
  border: 1px solid var(--victoria-border);
  border-radius: var(--victoria-radius-xl);
  box-shadow: var(--victoria-shadow);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px) scale(.985);
  transform-origin: bottom right;
  transition: opacity var(--victoria-ease), transform var(--victoria-ease), visibility var(--victoria-ease);
  display: flex;
  flex-direction: column;
}

#victoria-widget-root.is-open .victoria-panel{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

/* HEADER */

#victoria-widget-root .victoria-header{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px;
  border-bottom: 1px solid rgba(20,34,53,.08);
  background: rgba(255,255,255,.90);
  flex-shrink: 0;
}

#victoria-widget-root .victoria-header-left{
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1 1 auto;
}

#victoria-widget-root .victoria-header-copy{
  min-width: 0;
}

#victoria-widget-root .victoria-title{
  margin: 0;
  font-size: 16px;
  line-height: 1.2;
  color: var(--victoria-text);
  font-weight: 700;
}

#victoria-widget-root .victoria-subtitle{
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.35;
  color: var(--victoria-text-soft);
}

#victoria-widget-root .victoria-status-row{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 7px;
}

#victoria-widget-root .victoria-status-led{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #22c55e;
}

#victoria-widget-root .victoria-status-label{
  font-size: 11px;
  color: var(--victoria-text-soft);
  text-transform: lowercase;
}

#victoria-widget-root .victoria-close{
  width: 38px;
  height: 38px;
  min-width: 38px;
  border-radius: 12px;
  border: 1px solid rgba(20,34,53,.08);
  background: #fff;
  color: var(--victoria-text);
  display: grid;
  place-items: center;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: background var(--victoria-ease), transform var(--victoria-ease);
}

#victoria-widget-root .victoria-close:hover{
  background: #f7f9fb;
  transform: translateY(-1px);
}

/* BODY */

#victoria-widget-root .victoria-body{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  background: linear-gradient(180deg, rgba(248,250,252,.85), rgba(244,247,250,.95));
}

#victoria-widget-root .victoria-top-actions{
  display: flex;
  gap: 8px;
  padding: 12px 16px 0;
  flex-shrink: 0;
}

#victoria-widget-root .victoria-top-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 12px;
  border-radius: 999px;
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
  color: var(--victoria-brand);
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(36,63,74,.12);
  transition: transform var(--victoria-ease), border-color var(--victoria-ease), background var(--victoria-ease);
}

#victoria-widget-root .victoria-top-link:hover{
  transform: translateY(-1px);
  background: #fff;
  border-color: rgba(36,63,74,.20);
}

#victoria-widget-root .victoria-top-link.is-whatsapp{
  color: #0f8f4d;
}

#victoria-widget-root .victoria-chat-feed{
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overscroll-behavior: contain;
}

#victoria-widget-root .victoria-chat-feed::-webkit-scrollbar{
  width: 10px;
}

#victoria-widget-root .victoria-chat-feed::-webkit-scrollbar-thumb{
  background: rgba(36,63,74,.15);
  border-radius: 999px;
}

#victoria-widget-root .victoria-row{
  display: flex;
  width: 100%;
  animation: victoriaMsgIn 260ms cubic-bezier(.22,1,.36,1);
}

@keyframes victoriaMsgIn{
  from{
    opacity: 0;
    transform: translateY(6px);
  }
  to{
    opacity: 1;
    transform: translateY(0);
  }
}

#victoria-widget-root .victoria-row.is-bot{
  justify-content: flex-start;
}

#victoria-widget-root .victoria-row.is-user{
  justify-content: flex-end;
}

#victoria-widget-root .victoria-bubble{
  max-width: 84%;
  padding: 12px 14px;
  border-radius: 18px;
  font-size: 14px;
  line-height: 1.45;
  box-shadow: 0 8px 22px rgba(13,22,35,.08);
  word-break: break-word;
}

#victoria-widget-root .victoria-row.is-bot .victoria-bubble{
  background: #ffffff;
  color: var(--victoria-text);
  border-top-left-radius: 8px;
}

#victoria-widget-root .victoria-row.is-user .victoria-bubble{
  background: var(--victoria-brand);
  color: #fff;
  border-top-right-radius: 8px;
}

#victoria-widget-root .victoria-meta{
  margin-top: 6px;
  font-size: 11px;
  opacity: .7;
}

#victoria-widget-root .victoria-typing{
  display: inline-flex;
  gap: 4px;
  align-items: center;
  height: 16px;
}

#victoria-widget-root .victoria-typing span{
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(22,35,52,.40);
  animation: victoriaTyping 1.2s infinite ease-in-out;
}

#victoria-widget-root .victoria-typing span:nth-child(2){ animation-delay: .15s; }
#victoria-widget-root .victoria-typing span:nth-child(3){ animation-delay: .30s; }

@keyframes victoriaTyping{
  0%,80%,100%{ transform: translateY(0); opacity: .35; }
  40%{ transform: translateY(-3px); opacity: 1; }
}

#victoria-widget-root .victoria-suggestions{
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 0 16px 12px;
  flex-shrink: 0;
}

#victoria-widget-root .victoria-suggestions::-webkit-scrollbar{
  display: none;
}

#victoria-widget-root .victoria-chip{
  border: 1px solid rgba(36,63,74,.12);
  background: rgba(255,255,255,.92);
  color: var(--victoria-brand);
  border-radius: 999px;
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: transform var(--victoria-ease), background var(--victoria-ease), border-color var(--victoria-ease);
}

#victoria-widget-root .victoria-chip:hover{
  transform: translateY(-1px);
  background: #fff;
  border-color: rgba(36,63,74,.20);
}

/* FOOTER */

#victoria-widget-root .victoria-footer{
  flex-shrink: 0;
  padding: 12px 16px 16px;
  border-top: 1px solid rgba(20,34,53,.08);
  background: rgba(255,255,255,.90);
}

#victoria-widget-root .victoria-form{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: end;
}

#victoria-widget-root .victoria-input{
  width: 100%;
  min-height: 52px;
  max-height: 140px;
  resize: none;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid rgba(36,63,74,.14);
  background: #fff;
  color: var(--victoria-text);
  font: inherit;
  font-size: 14px;
  line-height: 1.45;
  outline: none;
  box-sizing: border-box;
  display: block;
}

#victoria-widget-root .victoria-input:focus{
  border-color: rgba(36,63,74,.28);
  box-shadow: 0 0 0 4px rgba(36,63,74,.08);
}

#victoria-widget-root .victoria-send{
  width: 52px;
  height: 52px;
  border-radius: 16px;
  border: 0;
  background: linear-gradient(180deg, var(--victoria-brand), var(--victoria-brand-2));
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: 0 12px 24px rgba(36,63,74,.18);
  transition: transform var(--victoria-ease), filter var(--victoria-ease), opacity var(--victoria-ease);
}

#victoria-widget-root .victoria-send:hover{
  transform: translateY(-1px);
  filter: brightness(1.03);
}

#victoria-widget-root .victoria-send:disabled{
  opacity: .55;
  cursor: not-allowed;
}

#victoria-widget-root .victoria-disclaimer{
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.35;
  color: var(--victoria-text-soft);
  text-align: center;
}

/* MOBILE */

@media (max-width: 640px){
  :root{
    --victoria-fab-size: 82px;
  }

  #victoria-widget-root{
    right: 12px;
    bottom: 12px;
  }

  #victoria-widget-root .victoria-panel{
    width: min(100vw - 12px, 420px);
    height: min(78dvh, 700px);
    bottom: calc(var(--victoria-fab-size) + 10px);
  }

  #victoria-widget-root .victoria-hover-bubble{
    display: none;
  }
}

@media (prefers-reduced-motion: reduce){
  #victoria-widget-root .victoria-fab-shell.is-idle,
  #victoria-widget-root .victoria-row,
  #victoria-widget-root .victoria-typing span{
    animation: none !important;
  }
}