/* GobernArte Asistente · burbuja de chat con mascota (independiente del tema) */
.gaa{--gaa-bg:#0d0e11;--gaa-bg2:#17191e;--gaa-line:rgba(255,255,255,.12);--gaa-tx:#eef0f3;--gaa-mut:#9aa1aa;--gaa-gold:#d4a648;--gaa-gold-g:linear-gradient(180deg,#fbe9b0 0%,#d4a648 55%,#9a7428 100%);--gaa-metal:linear-gradient(180deg,#fbfcfd 0%,#dfe3e7 45%,#aeb4bb 70%,#eef1f4 100%);--gaa-ok:#3ddc84;--gaa-ease:cubic-bezier(.22,1,.36,1);font-family:inherit;color:var(--gaa-tx)}
.gaa[hidden]{display:none}
.gaa *,.gaa *::before,.gaa *::after{box-sizing:border-box}

/* ---------- Avatar ---------- */
.gaa-av{display:block;width:100%;height:100%;overflow:visible}
.gaa-av .av-eyes,.gaa-av .cat-ear,.gaa-av .av-pupils,.gaa-av .av-mouth{transform-box:fill-box}
.gaa-av .av-eyes{transform-origin:center;animation:gaa-blink 4.8s infinite}
.gaa-av .cat-ear-r{transform-origin:50% 100%;animation:gaa-ear 7s 1.5s infinite}
.gaa-av .cat-ear-l{transform-origin:50% 100%;animation:gaa-ear-l 9s 4s infinite}
.gaa-av .av-pupils{transition:transform .4s var(--gaa-ease)}
.gaa-av .av-mouth{transform-origin:50% 0;transform:scaleY(0)}
.gaa-av .av-happy{display:none}
.is-thinking .gaa-av .av-pupils{transform:translate(2.2px,-2.4px)}
.is-thinking .gaa-av .cat-ear-r{animation:gaa-ear 1.6s infinite}
.is-talking .gaa-av .av-mouth{animation:gaa-talk .2s 6 alternate}
.is-happy .gaa-av .av-eyes{display:none}
.is-happy .gaa-av .av-happy{display:inline}
/* Valeria: cabeza que se inclina con elegancia; ojos y boca más pequeños */
.gaa-av--ejecutiva .av-head{transform-box:view-box;transform-origin:50px 66px;animation:gaa-tilt 9s ease-in-out infinite}
.is-thinking .gaa-av--ejecutiva .av-head{animation:gaa-ponder 2.4s ease-in-out infinite}
.is-thinking .gaa-av--ejecutiva .av-pupils{transform:translate(.9px,-1px)}
.is-happy .gaa-av--ejecutiva .av-head{animation:gaa-nod .5s 3}
@keyframes gaa-tilt{0%,100%{transform:none}35%{transform:rotate(-2.5deg)}55%{transform:rotate(1.5deg)}}
@keyframes gaa-ponder{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(-2deg) translateY(-.5px)}}
@keyframes gaa-nod{50%{transform:translateY(1.2px) rotate(1deg)}}
@keyframes gaa-blink{0%,91%,97%,100%{transform:scaleY(1)}94%{transform:scaleY(.08)}}
@keyframes gaa-ear{0%,86%,100%{transform:none}89%{transform:rotate(9deg)}92%{transform:rotate(-4deg)}95%{transform:rotate(3deg)}}
@keyframes gaa-ear-l{0%,90%,100%{transform:none}93%{transform:rotate(-8deg)}96%{transform:rotate(2deg)}}
@keyframes gaa-talk{from{transform:scaleY(0)}to{transform:scaleY(1)}}

/* ---------- Botón flotante: encima del de WhatsApp ---------- */
.gaa-fab{position:fixed;right:22px;bottom:94px;z-index:71;width:62px;height:62px;padding:5px 6px 3px;border-radius:50%;border:1px solid rgba(212,166,72,.55);cursor:pointer;background:radial-gradient(120% 120% at 30% 15%,#2c3038 0%,#0d0e11 72%);box-shadow:0 16px 40px -10px rgba(0,0,0,.85),0 0 0 4px rgba(212,166,72,.08),inset 0 1px 0 rgba(255,255,255,.16);transition:transform .3s var(--gaa-ease),opacity .3s;animation:gaa-bob 3.6s ease-in-out infinite}
.gaa-fab:hover{transform:scale(1.08) rotate(-4deg);animation-play-state:paused}
.gaa-fab:focus-visible{outline:2px solid #fff;outline-offset:3px}
.gaa-fab__av{display:block;width:100%;height:100%;border-radius:50%;overflow:hidden}
.gaa-fab::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:2px solid var(--gaa-gold);opacity:0;animation:gaa-ring 5s 2s infinite;pointer-events:none}
.gaa-fab.is-calling{animation:gaa-wiggle .6s 3}
.gaa-fab__dot{position:absolute;top:3px;right:3px;width:12px;height:12px;border-radius:50%;background:var(--gaa-ok);border:2px solid #0d0e11}
.gaa.is-open .gaa-fab__dot{display:none}
body:not(.gaa-solo) .totop{bottom:166px}
.gaa-solo .wa{display:none!important}
.gaa-solo .gaa-fab{bottom:22px}
.gaa-solo .gaa-tip{bottom:32px}
.gaa-solo .gaa-panel{bottom:22px;height:min(720px,calc(100vh - 60px))}
@keyframes gaa-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes gaa-ring{0%{opacity:.7;transform:scale(1)}40%,100%{opacity:0;transform:scale(1.45)}}
@keyframes gaa-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg) scale(1.06)}75%{transform:rotate(10deg) scale(1.06)}}

/* Invitación */
.gaa-tip{position:fixed;right:96px;bottom:104px;z-index:71;max-width:250px;padding:12px 30px 12px 14px;border-radius:16px 16px 4px 16px;background:#fff;color:#111;font-size:14px;font-weight:600;line-height:1.35;box-shadow:0 18px 40px -12px rgba(0,0,0,.6);cursor:pointer;animation:gaa-pop .45s var(--gaa-ease)}
.gaa-tip::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;background:var(--gaa-gold-g)}
.gaa-tip[hidden]{display:none}
.gaa-tip__x{position:absolute;top:4px;right:6px;border:0;background:none;color:#666;font-size:18px;line-height:1;cursor:pointer;padding:2px 4px}
@keyframes gaa-pop{0%{opacity:0;transform:translateY(10px) scale(.9)}70%{transform:translateY(-2px) scale(1.02)}100%{opacity:1;transform:none}}

/* ---------- Panel ---------- */
.gaa-panel{position:fixed;right:22px;bottom:94px;z-index:96;width:390px;height:min(600px,calc(100vh - 130px));display:flex;flex-direction:column;border-radius:24px;overflow:hidden;background:radial-gradient(120% 50% at 50% 0%,rgba(212,166,72,.10),transparent 60%),linear-gradient(180deg,var(--gaa-bg2),var(--gaa-bg));border:1px solid var(--gaa-line);box-shadow:0 30px 80px -20px rgba(0,0,0,.85);transform-origin:100% 100%;animation:gaa-in .38s var(--gaa-ease)}
.gaa-panel[hidden]{display:none}
.gaa.is-open .gaa-fab,.gaa.is-open .gaa-tip{opacity:0;pointer-events:none;transform:scale(.6)}
@keyframes gaa-in{from{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:none}}

.gaa-head{position:relative;display:flex;align-items:center;gap:10px;padding:12px 10px 12px 14px;background:rgba(255,255,255,.03)}
.gaa-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(212,166,72,.6),transparent)}
.gaa-head>div{flex:1;min-width:0;display:flex;flex-direction:column}
.gaa-head b{font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gaa-head small{font-size:12px;color:var(--gaa-mut);display:flex;align-items:center;gap:6px;min-height:16px;min-width:0}
.gaa-head small span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.is-thinking .gaa-head small{color:#e9cf8e}
.gaa-live{flex:none;width:7px;height:7px;border-radius:50%;background:var(--gaa-ok);box-shadow:0 0 0 3px rgba(61,220,132,.18)}
.is-thinking .gaa-live{background:var(--gaa-gold);box-shadow:0 0 0 3px rgba(212,166,72,.2);animation:gaa-pulse 1s infinite}
@keyframes gaa-pulse{50%{opacity:.35}}
.gaa-avatar{flex:none;width:44px;height:44px;padding:3px 4px 1px;border-radius:50%;overflow:hidden;background:radial-gradient(100% 100% at 30% 15%,#2c3038,#0d0e11);border:1px solid rgba(212,166,72,.45)}
.gaa-icon{flex:none;width:36px;height:36px;border-radius:10px;border:0;background:transparent;color:var(--gaa-mut);display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s,transform .3s}
.gaa-icon:hover{background:rgba(255,255,255,.07);color:#fff}
.gaa-icon[data-gaa-reset]:hover{transform:rotate(-90deg)}
.gaa-icon svg{width:20px;height:20px}

.gaa-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px 14px 10px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scroll-behavior:smooth}

/* Bienvenida */
.gaa-hello{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4px 8px 2px;animation:gaa-rise .5s var(--gaa-ease) both}
.gaa-hello__stage{position:relative;display:block;width:104px;height:104px;margin:0 0 8px}
.gaa-hello__av{position:absolute;inset:11px;padding:7px 8px 2px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 38%,#2f333c,#0d0e11 70%);border:2px solid rgba(212,166,72,.7);box-shadow:0 0 0 6px rgba(212,166,72,.08),0 18px 40px -14px rgba(212,166,72,.45);animation:gaa-bob 3.6s ease-in-out infinite,gaa-enter .7s var(--gaa-ease) both}
.gaa-orbit{position:absolute;inset:2px;border-radius:50%;border:1.5px dashed rgba(212,166,72,.45);animation:gaa-spin 18s linear infinite}
.gaa-orbit--2{inset:-6px;border:1px solid transparent;border-top-color:rgba(240,214,143,.85);border-right-color:rgba(240,214,143,.25);animation-duration:3.2s}
.gaa-hello__name{display:block;font-size:20px;font-weight:900;letter-spacing:-.01em;background:linear-gradient(180deg,#fff,#e9cf8e);-webkit-background-clip:text;background-clip:text;color:transparent;animation:gaa-rise .5s .15s var(--gaa-ease) both}
.gaa-hello__tag{display:block;margin:1px 0 10px;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gaa-gold);animation:gaa-rise .5s .25s var(--gaa-ease) both}
.gaa-hello__text{max-width:330px;font-size:14.5px;line-height:1.5;color:#d9dce1}
.gaa-hello__text p{margin:0 0 6px}.gaa-hello__text p:last-child{margin:0}
.gaa-hello__text strong{color:#fff}
.gaa-w{display:inline-block;animation:gaa-word .35s var(--gaa-ease) both}
.gaa-hello.is-compact .gaa-hello__stage{width:78px;height:78px;margin-bottom:4px}
.gaa-hello.is-compact .gaa-hello__av{inset:8px}
.gaa-hello.is-compact .gaa-hello__name{font-size:18px}
.gaa-hello.is-compact .gaa-hello__tag{margin-bottom:8px}
.gaa-hello.is-compact .gaa-card small{display:none}
.gaa-hello.is-compact .gaa-card{min-height:46px}
.gaa-hello.is-compact .gaa-cards{margin-top:10px}
.gaa-hello.is-tight .gaa-hello__stage,.gaa-hello.is-tight .gaa-hello__tag{display:none}
@keyframes gaa-word{from{opacity:0;transform:translateY(6px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
@keyframes gaa-spin{to{transform:rotate(360deg)}}
@keyframes gaa-enter{from{opacity:0;transform:scale(.6) rotate(-8deg)}to{opacity:1;transform:none}}
.gaa-spark{position:absolute;width:8px;height:8px;background:var(--gaa-gold-g);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:gaa-twinkle 2.6s infinite}
.gaa-spark.s1{top:6px;right:10px;width:10px;height:10px}.gaa-spark.s2{top:46px;left:-2px;animation-delay:.9s;width:7px;height:7px}.gaa-spark.s3{bottom:14px;right:0;animation-delay:1.7s;width:6px;height:6px}.gaa-spark.s4{bottom:2px;left:18px;animation-delay:2.2s;width:5px;height:5px}
@keyframes gaa-twinkle{0%,100%{opacity:0;transform:scale(.4) rotate(0)}50%{opacity:1;transform:scale(1) rotate(90deg)}}

/* Mensajes */
.gaa-row{display:flex;align-items:flex-end;gap:8px}
.gaa-row--user{justify-content:flex-end}
.gaa-row.is-fresh{animation:gaa-rise .4s var(--gaa-ease) both}
.gaa-mini{flex:none;width:30px;height:30px;padding:2px 3px 0;border-radius:50%;overflow:hidden;background:radial-gradient(100% 100% at 30% 15%,#2c3038,#0d0e11);border:1px solid rgba(212,166,72,.35)}
.gaa-mini .gaa-av .av-eyes,.gaa-mini .gaa-av .cat-ear{animation:none}
.gaa-row:not(:last-child) .gaa-mini{visibility:hidden}
.gaa-msg{max-width:84%;padding:10px 13px;border-radius:18px;font-size:14.5px;line-height:1.45;word-wrap:break-word;overflow-wrap:anywhere}
.gaa-msg p{margin:0 0 6px}.gaa-msg p:last-child{margin:0}
.gaa-msg ul,.gaa-msg ol{margin:4px 0 6px;padding-left:20px}.gaa-msg li{margin:3px 0}
.gaa-msg ul{list-style:none;padding-left:4px}
.gaa-msg ul li{position:relative;padding-left:16px}
.gaa-msg ul li::before{content:"";position:absolute;left:2px;top:.55em;width:7px;height:7px;background:var(--gaa-gold-g);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.gaa-msg ol li::marker{color:var(--gaa-gold);font-weight:800}
.gaa-msg a{color:#f0d68f;text-decoration:underline;text-decoration-color:rgba(240,214,143,.45);text-underline-offset:3px;font-weight:600}
.gaa-msg a:hover{text-decoration-color:currentColor}
.gaa-msg strong{font-weight:800;color:#fff}
.gaa-msg--bot{background:rgba(255,255,255,.06);border:1px solid var(--gaa-line);border-bottom-left-radius:6px}
.gaa-msg--user{background:var(--gaa-metal);color:#0c0d10;border-bottom-right-radius:6px;box-shadow:0 8px 20px -12px rgba(0,0,0,.8)}
.gaa-msg--user a,.gaa-msg--user strong{color:#0c0d10}
.gaa-rise{animation:gaa-rise .45s var(--gaa-ease) both}
@keyframes gaa-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.gaa-typing{display:flex;gap:5px;padding:14px 15px}
.gaa-typing span{width:8px;height:8px;background:var(--gaa-gold-g);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);animation:gaa-dot 1.1s infinite}
.gaa-typing span:nth-child(2){animation-delay:.15s}.gaa-typing span:nth-child(3){animation-delay:.3s}
@keyframes gaa-dot{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-4px) rotate(45deg)}}

/* Sugerencias */
.gaa-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 10px}
.gaa-chips:empty{display:none}
.gaa-cards{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%;margin-top:14px;text-align:left}
.gaa-card{display:flex;align-items:center;gap:9px;min-height:54px;padding:8px 10px;border:1px solid var(--gaa-line);border-radius:14px;background:rgba(255,255,255,.04);color:var(--gaa-tx);font:inherit;font-size:13px;font-weight:600;line-height:1.25;text-align:left;cursor:pointer;transition:background .2s,border-color .2s,transform .25s var(--gaa-ease);animation:gaa-rise .45s var(--gaa-ease) both}
.gaa-card:hover{background:rgba(212,166,72,.1);border-color:rgba(212,166,72,.5);transform:translateY(-2px)}
.gaa-card span{display:flex;flex-direction:column;gap:2px;min-width:0}
.gaa-card b{font-weight:700;font-size:12.5px;line-height:1.22}
.gaa-card small{font-size:10.5px;font-weight:500;color:var(--gaa-mut);line-height:1.2}
.gaa-card:hover small{color:#e9cf8e}
.gaa-card svg{flex:none;width:30px;height:30px;padding:6px;border-radius:9px;background:rgba(212,166,72,.14);fill:none;stroke:#e9cf8e;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gaa-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--gaa-line);background:rgba(255,255,255,.04);color:var(--gaa-tx);font:inherit;font-size:13px;padding:7px 12px;border-radius:999px;cursor:pointer;text-decoration:none;line-height:1.2}
.gaa-chip:hover{background:rgba(255,255,255,.1)}
.gaa-chip svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.gaa-chip--wa{border-color:rgba(37,211,102,.45);color:#7ff0ad}

/* Escritura */
.gaa-form{display:flex;align-items:flex-end;gap:8px;margin:0 12px;padding:6px 6px 6px 14px;border:1px solid var(--gaa-line);border-radius:18px;background:rgba(0,0,0,.35);transition:border-color .2s,box-shadow .2s}
.gaa-form:focus-within{border-color:rgba(212,166,72,.6);box-shadow:0 0 0 4px rgba(212,166,72,.1)}
.gaa-form textarea{flex:1;min-height:24px;max-height:120px;margin:6px 0;resize:none;border:0;outline:0;background:transparent;color:var(--gaa-tx);font:inherit;font-size:15px;line-height:1.4;padding:0}
.gaa-form textarea::placeholder{color:var(--gaa-mut)}
.gaa-send{flex:none;width:40px;height:40px;border-radius:13px;border:0;cursor:pointer;display:grid;place-items:center;background:var(--gaa-gold-g);color:#1a1205;transition:transform .2s,opacity .2s}
.gaa-send:hover:not(:disabled){transform:translateX(2px) rotate(-8deg)}
.gaa-send:disabled{opacity:.45;cursor:default}
.gaa-send svg{width:19px;height:19px}
.gaa-foot{margin:0;padding:8px 14px 12px;font-size:11px;line-height:1.35;color:var(--gaa-mut);text-align:center}
.gaa-foot a{color:inherit}
.gaa .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}

/* ---------- Celular y tableta ---------- */
@media (max-width:1024px){
  .has-mbar .gaa-fab{right:16px;bottom:calc(148px + env(safe-area-inset-bottom,0px));width:54px;height:54px;padding:4px 5px 2px}
  .has-mbar .gaa-tip{right:80px;bottom:calc(154px + env(safe-area-inset-bottom,0px))}
  body.has-mbar:not(.gaa-solo) .totop{bottom:calc(212px + env(safe-area-inset-bottom,0px))}
  .gaa-solo.has-mbar .gaa-fab{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
  .gaa-solo.has-mbar .gaa-tip{bottom:calc(94px + env(safe-area-inset-bottom,0px))}
  .bars-hidden .has-mbar .gaa-fab{translate:0 76px}
  .drawer-open .gaa-fab,.drawer-open .gaa-tip{opacity:0;pointer-events:none}
}
@media (max-width:640px){
  .gaa-panel,.gaa-solo .gaa-panel{inset:0;width:auto;height:auto;height:100dvh;border-radius:0;border:0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .gaa-head{padding-top:calc(12px + env(safe-area-inset-top,0px))}
  .gaa-msg{max-width:88%}
  .gaa-form textarea{font-size:16px}
  .gaa-hello{margin:auto 0}
  .gaa-hello__stage{width:150px;height:150px}
  html.gaa-lock,html.gaa-lock body{overflow:hidden}
}
@media (prefers-reduced-motion:reduce){
  .gaa *,.gaa *::before,.gaa *::after,.gaa-fab{animation:none!important;transition:none!important}
}
