.kakuzu-widget{
  --kakuzu-launcher-size:68px;
  --kakuzu-header-height:68px;
  --kakuzu-open-width:390px;
  --kakuzu-open-height:690px;
  --kakuzu-fixed-right:24px;
  --kakuzu-fixed-bottom:24px;
  --kakuzu-bg:#e6f0ee;
  --kakuzu-header:#365951;
  --kakuzu-header-text:#fff;
  --kakuzu-user:#dbe9e5;
  --kakuzu-assistant:#fff;
  --kakuzu-text:#192c27;
  --kakuzu-muted:#4b7076;
  --kakuzu-action:#4b7076;
  --kakuzu-avatar-ring-width:4px;
  --kakuzu-avatar-ring-color:var(--kakuzu-header);
  z-index:999980;
  width:var(--kakuzu-launcher-size);
  height:var(--kakuzu-launcher-size);
  color:var(--kakuzu-text);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow:visible;
  isolation:isolate;
}
/* Modo aislado: la apariencia de TheraNova Guide no cambia con el tema general. */
.kakuzu-widget--isolated{
  --kakuzu-bg:#e6f0ee;
  --kakuzu-assistant:#ffffff;
  --kakuzu-user:#dbe9e5;
  --kakuzu-text:#192c27;
  --kakuzu-muted:#4b7076;
  color-scheme:light!important;
}
.kakuzu-widget *{box-sizing:border-box}
.kakuzu-widget--fixed{
  position:fixed;
  right:var(--kakuzu-fixed-right);
  bottom:var(--kakuzu-fixed-bottom);
}
.kakuzu-widget--inline{
  position:relative;
  display:block;
  margin:12px 0;
  max-width:100%;
}

/* Secuencia: abrir ancho > alto; cerrar alto > ancho. */
.kakuzu-widget[data-kakuzu-state="opening-width"]{
  width:min(var(--kakuzu-open-width),calc(100vw - 28px));
  height:var(--kakuzu-header-height);
  transition:width 230ms cubic-bezier(.2,.8,.2,1);
}
.kakuzu-widget[data-kakuzu-state="opening-height"]{
  width:min(var(--kakuzu-open-width),calc(100vw - 28px));
  height:min(var(--kakuzu-open-height),calc(100vh - 28px));
  transition:height 320ms cubic-bezier(.2,.8,.2,1);
}
.kakuzu-widget[data-kakuzu-state="open"]{
  width:min(var(--kakuzu-open-width),calc(100vw - 28px));
  height:min(var(--kakuzu-open-height),calc(100vh - 28px));
}
.kakuzu-widget[data-kakuzu-state="closing-height"]{
  width:min(var(--kakuzu-open-width),calc(100vw - 28px));
  height:var(--kakuzu-header-height);
  transition:height 270ms cubic-bezier(.4,0,.2,1);
}
.kakuzu-widget[data-kakuzu-state="closing-width"]{
  width:var(--kakuzu-launcher-size);
  height:var(--kakuzu-header-height);
  transition:width 210ms cubic-bezier(.4,0,.2,1);
}
.kakuzu-widget--inline[data-kakuzu-state="opening-width"],
.kakuzu-widget--inline[data-kakuzu-state="opening-height"],
.kakuzu-widget--inline[data-kakuzu-state="open"],
.kakuzu-widget--inline[data-kakuzu-state="closing-height"]{
  width:min(var(--kakuzu-open-width),100%);
}
.kakuzu-widget--inline[data-kakuzu-state="opening-height"],
.kakuzu-widget--inline[data-kakuzu-state="open"]{
  height:var(--kakuzu-open-height);
  max-height:none;
}

.kakuzu-widget__closed{
  position:absolute;
  inset:0;
  z-index:5;
  width:var(--kakuzu-launcher-size);
  height:var(--kakuzu-launcher-size);
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity 90ms ease,visibility 0s linear;
}
.kakuzu-widget:not([data-kakuzu-state="closed"]) .kakuzu-widget__closed{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.kakuzu-widget--fixed .kakuzu-widget__closed{right:0;bottom:0;left:auto;top:auto}
.kakuzu-widget--inline .kakuzu-widget__closed{left:0;top:0;right:auto;bottom:auto}

.kakuzu-widget__launcher{
  position:absolute;
  inset:0;
  z-index:4;
  width:var(--kakuzu-launcher-size);
  height:var(--kakuzu-launcher-size);
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
}
.kakuzu-widget__avatar{
  display:grid;
  width:100%;
  height:100%;
  place-items:center;
  overflow:hidden;
  border-radius:50%;
  background:#e7fffa;
  color:#365951;
  font-weight:800;
  line-height:1;
  flex:0 0 auto;
}
.kakuzu-widget__launcher>.kakuzu-widget__avatar{
  border:0;
  box-shadow:0 0 0 var(--kakuzu-avatar-ring-width) var(--kakuzu-avatar-ring-color),0 10px 34px rgba(0,0,0,.23);
}
.kakuzu-widget__avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.kakuzu-widget__avatar--fallback{font-size:25px}

.kakuzu-widget__help{
  position:absolute;
  top:50%;
  z-index:5;
  min-width:max-content;
  max-width:220px;
  margin:0;
  padding:10px 13px;
  transform:translateY(-50%);
  border:0;
  border-radius:12px;
  background:#fff;
  color:#202124;
  box-shadow:0 7px 24px rgba(0,0,0,.16);
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
.kakuzu-widget--fixed .kakuzu-widget__help{right:calc(var(--kakuzu-launcher-size) + 12px)}
.kakuzu-widget--inline .kakuzu-widget__help{left:calc(var(--kakuzu-launcher-size) + 12px)}
.kakuzu-widget__help:after{
  content:"";
  position:absolute;
  top:50%;
  width:14px;
  height:14px;
  background:#fff;
  transform:translateY(-50%) rotate(45deg);
  z-index:-1;
}
/* Ajuste corregido: 2 px hacia el lado contrario respecto a la versión anterior. */
.kakuzu-widget--fixed .kakuzu-widget__help:after{right:-5px}
.kakuzu-widget--inline .kakuzu-widget__help:after{left:-5px}

.kakuzu-chat{
  position:absolute;
  inset:0;
  z-index:3;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto auto;
  width:100%;
  height:100%;
  overflow:hidden;
  border-radius:18px;
  background:var(--kakuzu-bg);
  color:var(--kakuzu-text);
  box-shadow:0 20px 65px rgba(0,0,0,.28);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.kakuzu-widget--fixed .kakuzu-chat{right:0;bottom:0;left:auto;top:auto}
.kakuzu-widget--inline .kakuzu-chat{left:0;top:0;right:auto;bottom:auto}
.kakuzu-widget:not([data-kakuzu-state="closed"]) .kakuzu-chat{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.kakuzu-chat__header{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 38px;
  align-items:center;
  gap:11px;
  width:100%;
  min-height:var(--kakuzu-header-height);
  padding:11px 12px 11px 14px;
  overflow:hidden;
  background:var(--kakuzu-header);
  color:var(--kakuzu-header-text);
}
/* El avatar conserva un tamaño fijo: la pieza que crece es la cabecera verde. */
.kakuzu-chat__header>.kakuzu-widget__avatar{
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  box-shadow:0 0 0 var(--kakuzu-avatar-ring-width) var(--kakuzu-avatar-ring-color);
}
.kakuzu-chat__identity{min-width:0;opacity:1;transition:opacity 100ms ease}
.kakuzu-chat__identity strong,.kakuzu-chat__identity span{display:block;color:inherit}
.kakuzu-chat__identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.2}
.kakuzu-chat__identity span{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;opacity:.91}
.kakuzu-chat__identity span i{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#4ade80}
.kakuzu-chat__close{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  margin:0;
  padding:0;
  border:1px solid rgba(255,255,255,.24);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  font:inherit;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}

/* Durante la primera fase sólo existe visualmente la cabecera. */
.kakuzu-widget[data-kakuzu-state="opening-width"] .kakuzu-chat__messages,
.kakuzu-widget[data-kakuzu-state="opening-width"] .kakuzu-chat__typing,
.kakuzu-widget[data-kakuzu-state="opening-width"] .kakuzu-chat__form,
.kakuzu-widget[data-kakuzu-state="opening-width"] .kakuzu-chat__privacy,
.kakuzu-widget[data-kakuzu-state="closing-width"] .kakuzu-chat__messages,
.kakuzu-widget[data-kakuzu-state="closing-width"] .kakuzu-chat__typing,
.kakuzu-widget[data-kakuzu-state="closing-width"] .kakuzu-chat__form,
.kakuzu-widget[data-kakuzu-state="closing-width"] .kakuzu-chat__privacy{display:none!important}
.kakuzu-widget[data-kakuzu-state="closing-height"] .kakuzu-chat__messages,
.kakuzu-widget[data-kakuzu-state="closing-height"] .kakuzu-chat__typing,
.kakuzu-widget[data-kakuzu-state="closing-height"] .kakuzu-chat__form,
.kakuzu-widget[data-kakuzu-state="closing-height"] .kakuzu-chat__privacy{opacity:0;transition:opacity 90ms ease}

.kakuzu-chat__messages{
  min-height:0;
  overflow-y:auto;
  padding:18px 15px;
  scroll-behavior:smooth;
  background-color:var(--kakuzu-bg);
  background-image:radial-gradient(rgba(17,27,33,.045) .8px,transparent .8px);
  background-size:18px 18px;
}
.kakuzu-chat__row{display:flex;margin:0 0 9px}
.kakuzu-chat__row--user{justify-content:flex-end}
.kakuzu-chat__row--assistant{justify-content:flex-start}
.kakuzu-chat__bubble{
  position:relative;
  max-width:84%;
  padding:9px 11px;
  border-radius:9px;
  background:var(--kakuzu-assistant);
  color:var(--kakuzu-text);
  box-shadow:0 1px 1px rgba(0,0,0,.08);
  font-size:14px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.kakuzu-chat__row--user .kakuzu-chat__bubble{background:var(--kakuzu-user);border-top-right-radius:3px;white-space:pre-wrap}
.kakuzu-chat__row--assistant .kakuzu-chat__bubble{border-top-left-radius:3px}
.kakuzu-chat__bubble a{color:#027eb5;text-decoration:underline;text-underline-offset:2px}
.kakuzu-chat__bubble strong{font-weight:800;color:inherit}
.kakuzu-chat__bubble em{font-style:italic;color:inherit}
.kakuzu-chat__bubble code{display:inline;padding:1px 4px;border-radius:4px;background:color-mix(in srgb,currentColor 9%,transparent);font:0.92em ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.kakuzu-md__line+.kakuzu-md__line{margin-top:.5em}
.kakuzu-md__blank{height:.55em}
.kakuzu-md__list{display:grid;gap:.35em;margin:.45em 0;padding-left:1.25em}
.kakuzu-md__list li{margin:0;padding:0}

.kakuzu-chat__typing{padding:5px 13px 6px;background:var(--kakuzu-bg);color:var(--kakuzu-muted);font-size:12px;font-style:italic}
.kakuzu-chat__form{
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  align-items:end;
  gap:8px;
  padding:9px 10px;
  background:#f0f2f5;
  border-top:1px solid rgba(17,27,33,.08);
}
.kakuzu-chat__form textarea{
  display:block;
  width:100%;
  min-height:44px;
  max-height:112px;
  margin:0;
  padding:11px 14px;
  border:0!important;
  outline:0!important;
  border-radius:22px!important;
  background:#fff!important;
  color:#111b21!important;
  box-shadow:none!important;
  font:inherit;
  font-size:14px;
  line-height:1.35;
  resize:none;
}
.kakuzu-chat__form textarea:focus{border:0!important;outline:0!important;box-shadow:none!important}
.kakuzu-chat__send{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  background:var(--kakuzu-action);
  color:#fff;
  cursor:pointer;
  transition:transform .15s ease,opacity .15s ease;
}
.kakuzu-chat__send:hover{transform:scale(1.04)}
.kakuzu-chat__send:disabled{opacity:.5;cursor:wait;transform:none}
.kakuzu-chat__send svg{width:21px;height:21px;fill:currentColor}
.kakuzu-chat__privacy{padding:3px 12px 7px;background:#f0f2f5;color:#7a878e;text-align:center;font-size:9px;line-height:1.25}
.kakuzu-chat__website{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.kakuzu-chat__invalid{animation:kakuzu-shake .18s linear 2}
@keyframes kakuzu-shake{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}

@media(max-width:700px){
  .kakuzu-widget--fixed{--kakuzu-fixed-right:14px;--kakuzu-fixed-bottom:14px}
  .kakuzu-widget__help{max-width:190px;font-size:12px}
  .kakuzu-chat__bubble{max-width:88%}
}
@media(prefers-reduced-motion:reduce){
  .kakuzu-widget{transition:none!important}
  .kakuzu-chat__identity{transition:none!important}
}
@media(prefers-color-scheme:dark){
  .kakuzu-widget:not(.kakuzu-widget--isolated){--kakuzu-bg:#0b141a;--kakuzu-assistant:#202c33;--kakuzu-user:#005c4b;--kakuzu-text:#e9edef;--kakuzu-muted:#8696a0}
  .kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__form,.kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__privacy{background:#202c33}
  .kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__form textarea{background:#2a3942!important;color:#e9edef!important}
  .kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__messages{background-color:#0b141a}
  .kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__bubble a{color:#53bdeb}
}
html[data-di-theme="night"] .kakuzu-widget:not(.kakuzu-widget--isolated){
  --kakuzu-bg:#0b141a;
  --kakuzu-assistant:#202c33;
  --kakuzu-user:#005c4b;
  --kakuzu-text:#e9edef;
  --kakuzu-muted:#8696a0;
}
html[data-di-theme="night"] .kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__form,
html[data-di-theme="night"] .kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__privacy{background:#202c33}
html[data-di-theme="night"] .kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__form textarea{background:#2a3942!important;color:#e9edef!important}
html[data-di-theme="night"] .kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__messages{background-color:#0b141a}
html[data-di-theme="night"] .kakuzu-widget:not(.kakuzu-widget--isolated) .kakuzu-chat__bubble a{color:#53bdeb}

/* TheraNova 2.0 · aislamiento frente al tema general.
   Se usa !important deliberadamente porque algunos temas aplican reglas globales
   a ul/li, botones, enlaces y tipografía al alternar dark/light. */
.kakuzu-widget--isolated,
.kakuzu-widget--isolated button,
.kakuzu-widget--isolated textarea,
.kakuzu-widget--isolated input{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}
.kakuzu-widget--isolated{color:var(--kakuzu-text)!important}
.kakuzu-widget--isolated .kakuzu-widget__avatar{background:#eef6f4!important;color:#365951!important;border-radius:50%!important}
.kakuzu-widget--isolated .kakuzu-widget__launcher>.kakuzu-widget__avatar{border:0!important;box-shadow:0 0 0 var(--kakuzu-avatar-ring-width) var(--kakuzu-avatar-ring-color),0 10px 34px rgba(0,0,0,.23)!important}
.kakuzu-widget--isolated .kakuzu-chat__header>.kakuzu-widget__avatar{box-shadow:0 0 0 var(--kakuzu-avatar-ring-width) var(--kakuzu-avatar-ring-color)!important}
.kakuzu-widget--isolated .kakuzu-chat{background:var(--kakuzu-bg)!important;color:var(--kakuzu-text)!important}
.kakuzu-widget--isolated .kakuzu-chat__header{background:var(--kakuzu-header)!important;color:var(--kakuzu-header-text)!important}
.kakuzu-widget--isolated .kakuzu-chat__identity,
.kakuzu-widget--isolated .kakuzu-chat__identity strong,
.kakuzu-widget--isolated .kakuzu-chat__identity span{color:var(--kakuzu-header-text)!important}
.kakuzu-widget--isolated .kakuzu-chat__close{color:#fff!important;background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.24)!important}
.kakuzu-widget--isolated .kakuzu-chat__messages{background-color:var(--kakuzu-bg)!important;color:var(--kakuzu-text)!important}
.kakuzu-widget--isolated .kakuzu-chat__bubble{background:var(--kakuzu-assistant)!important;color:var(--kakuzu-text)!important;font-size:14px!important;line-height:1.45!important;font-weight:400!important;letter-spacing:normal!important;text-transform:none!important}
.kakuzu-widget--isolated .kakuzu-chat__row--user .kakuzu-chat__bubble{background:var(--kakuzu-user)!important;color:var(--kakuzu-text)!important}
.kakuzu-widget--isolated .kakuzu-chat__bubble strong{color:inherit!important;font-weight:800!important}
.kakuzu-widget--isolated .kakuzu-chat__bubble em{color:inherit!important;font-style:italic!important}
.kakuzu-widget--isolated .kakuzu-chat__bubble a{color:#53bdeb!important;text-decoration:underline!important;text-underline-offset:2px!important}
.kakuzu-widget--isolated .kakuzu-chat__bubble code{color:inherit!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important}
.kakuzu-widget--isolated .kakuzu-md__line{color:var(--kakuzu-text)!important;margin-left:0!important;margin-right:0!important;padding:0!important;background:transparent!important;border:0!important}
.kakuzu-widget--isolated .kakuzu-md__list{display:grid!important;gap:.35em!important;margin:.45em 0!important;padding:0 0 0 1.25em!important;background:transparent!important;border:0!important;color:var(--kakuzu-text)!important;list-style-position:outside!important}
.kakuzu-widget--isolated ul.kakuzu-md__list{list-style-type:disc!important}
.kakuzu-widget--isolated ol.kakuzu-md__list{list-style-type:decimal!important}
.kakuzu-widget--isolated .kakuzu-md__list li{display:list-item!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;color:var(--kakuzu-text)!important;font:inherit!important;list-style:inherit!important}
.kakuzu-widget--isolated .kakuzu-md__list li::before{content:none!important;display:none!important}
.kakuzu-widget--isolated .kakuzu-md__list li::marker{color:var(--kakuzu-text)!important;font:inherit!important}
.kakuzu-widget--isolated .kakuzu-chat__typing{background:var(--kakuzu-bg)!important;color:var(--kakuzu-muted)!important}
.kakuzu-widget--isolated .kakuzu-chat__form,
.kakuzu-widget--isolated .kakuzu-chat__privacy{background:var(--kakuzu-assistant)!important;color:var(--kakuzu-muted)!important}
.kakuzu-widget--isolated .kakuzu-chat__form textarea{background:#2a3942!important;background:color-mix(in srgb,var(--kakuzu-assistant) 88%,white 12%)!important;color:var(--kakuzu-text)!important;border:0!important;outline:0!important;box-shadow:none!important;font-size:14px!important;line-height:1.35!important}
.kakuzu-widget--isolated .kakuzu-chat__form textarea::placeholder{color:var(--kakuzu-muted)!important;opacity:1!important}
.kakuzu-widget--isolated .kakuzu-chat__send{background:var(--kakuzu-action)!important;color:#fff!important;border:0!important}
.kakuzu-widget--isolated .kakuzu-widget__help{background:#fff!important;color:#202124!important;font-size:13px!important;font-weight:700!important}
.kakuzu-widget--isolated .kakuzu-widget__help:after{background:#fff!important}

/* TheraNova 2.0 · continuidad e historial */
.kakuzu-chat__divider{
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 2px 16px;
  color:var(--kakuzu-muted);
  font-size:11px;
  line-height:1.3;
  text-align:center;
}
.kakuzu-chat__divider::before,.kakuzu-chat__divider::after{
  content:"";
  height:1px;
  flex:1 1 auto;
  background:color-mix(in srgb,var(--kakuzu-muted) 24%,transparent);
}
.kakuzu-chat__form textarea:disabled,.kakuzu-chat__send:disabled{opacity:.58;cursor:wait}
@supports not (background:color-mix(in srgb,black 20%,transparent)){
  .kakuzu-chat__divider::before,.kakuzu-chat__divider::after{background:rgba(127,127,127,.24)}
}
