/* Ginnie - AI helper bubble (3D glass, black + red) */
#fab-wa{display:none!important}
#gn{--r:#e0241b;--r2:#ff5a4d;position:fixed;right:22px;bottom:22px;z-index:9990;font-family:inherit}
.gn-orb{position:relative;flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.05rem;
 background:radial-gradient(circle at 32% 26%,#fff 0,#ffb1a8 18%,#ff5a4d 45%,#b9170f 85%);box-shadow:inset -4px -6px 10px rgba(0,0,0,.25),inset 2px 3px 6px rgba(255,255,255,.6),0 8px 20px -6px rgba(224,36,27,.9)}
.gn-orb b{position:relative;z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.gn-orb i{position:absolute;inset:-5px;border-radius:50%;border:1.5px solid rgba(255,90,77,.55);animation:gnRing 2.6s ease-out infinite}
@keyframes gnRing{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.gn-fab{position:relative;display:flex;align-items:center;padding:0;border:0;background:none;cursor:pointer}
.gn-fab .gn-orb{width:64px;height:64px;font-size:1.5rem;box-shadow:inset -6px -8px 14px rgba(0,0,0,.28),inset 3px 4px 8px rgba(255,255,255,.65),0 18px 36px -10px rgba(224,36,27,.95),0 0 0 6px rgba(255,255,255,.08);transition:transform .35s cubic-bezier(.22,1,.36,1)}
.gn-fab:hover .gn-orb{transform:translateY(-3px) scale(1.05)}
.gn-tip{position:absolute;right:76px;top:50%;transform:translate(10px,-50%);white-space:nowrap;padding:10px 14px;border-radius:16px 16px 4px 16px;font-size:.88rem;font-weight:600;color:#fff;
 background:linear-gradient(160deg,rgba(28,28,34,.92),rgba(10,10,13,.95));border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 30px -12px rgba(0,0,0,.8);opacity:0;pointer-events:none;transition:.35s}
#gn.hint .gn-tip,.gn-fab:hover .gn-tip{opacity:1;transform:translate(0,-50%)}
#gn.on .gn-tip{display:none}
.gn-box{position:absolute;right:0;bottom:80px;width:min(390px,calc(100vw - 28px));height:min(600px,calc(100dvh - 120px));display:flex;flex-direction:column;overflow:hidden;border-radius:28px;color:#fff;
 background:radial-gradient(70% 40% at 100% 0%,rgba(255,75,62,.28),transparent 70%),radial-gradient(60% 40% at 0% 100%,rgba(124,92,255,.14),transparent 70%),linear-gradient(170deg,rgba(24,24,30,.94),rgba(9,9,12,.96));
 border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 40px 90px -30px rgba(0,0,0,.95),0 0 60px -30px rgba(255,75,62,.9);transform-origin:bottom right;animation:gnIn .35s cubic-bezier(.22,1,.36,1)}
.gn-box[hidden]{display:none}
@keyframes gnIn{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
.gn-hd{display:flex;align-items:center;gap:12px;padding:16px 16px 14px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}
.gn-hd>div{flex:1;display:flex;flex-direction:column}
.gn-hd b{font-size:1.05rem}.gn-hd small{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:rgba(255,255,255,.65)}
.gn-hd small i{width:7px;height:7px;border-radius:50%;background:#3fd98f;box-shadow:0 0 8px #3fd98f}
.gn-x,.gn-clr{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;font-size:1.15rem;line-height:1;cursor:pointer}
.gn-x:hover,.gn-clr:hover{background:rgba(255,255,255,.16)}
.gn-log{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:10px;background-image:radial-gradient(rgba(255,255,255,.04) 1px,transparent 1px);background-size:18px 18px}
.gn-m{display:flex;gap:8px;align-items:flex-end;max-width:90%}
.gn-m .gn-orb{width:28px;height:28px;font-size:.75rem}.gn-m .gn-orb i{display:none}
.gn-m p{margin:0;padding:10px 13px;border-radius:18px;font-size:.92rem;line-height:1.5;word-wrap:break-word}
.gn-m.a p{color:#1f2024;background:#f6f3ef;border-bottom-left-radius:6px}
.gn-m.a p a{color:#c4140f;font-weight:700}
.gn-m.u{align-self:flex-end}.gn-m.u p{color:#fff;background:linear-gradient(170deg,var(--r2),#c01a12);border-bottom-right-radius:6px;box-shadow:0 10px 20px -12px rgba(224,36,27,.9)}
.gn-m.in{animation:gnMsg .35s ease}
@keyframes gnMsg{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.gn-typing p{display:flex;gap:4px}.gn-typing p i{width:7px;height:7px;border-radius:50%;background:#9aa0ab;animation:gnDot 1.2s infinite}
.gn-typing p i:nth-child(2){animation-delay:.15s}.gn-typing p i:nth-child(3){animation-delay:.3s}
@keyframes gnDot{30%{transform:translateY(-4px);opacity:.5}}
.gn-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 10px}
.gn-chips[hidden]{display:none}
.gn-chips button{padding:7px 11px;border-radius:99px;font:600 .8rem/1.2 inherit;color:#fff;cursor:pointer;background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.18);transition:.2s}
.gn-chips button:hover{background:rgba(224,36,27,.35);border-color:rgba(255,120,110,.55)}
.gn-f{display:flex;gap:8px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.08)}
.gn-f input{flex:1;min-width:0;padding:12px 16px;border-radius:99px;font:500 .93rem inherit;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);outline:0}
.gn-f input:focus{border-color:rgba(255,90,77,.75);box-shadow:0 0 0 3px rgba(224,36,27,.25)}
.gn-f button{flex:none;width:46px;height:46px;border-radius:50%;border:0;color:#fff;font-size:1.05rem;cursor:pointer;background:linear-gradient(180deg,var(--r2),var(--r) 60%,#b9170f);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 10px 20px -8px rgba(224,36,27,.9)}
.gn-ft{display:flex;flex-direction:column;align-items:center;gap:3px;padding:0 12px 12px;font-size:.74rem;color:rgba(255,255,255,.45)}
.gn-ft a{color:#3fd98f;font-weight:700;font-size:.82rem;text-decoration:none}
@media(max-width:520px){#gn{right:14px;bottom:14px}.gn-box{right:-4px;bottom:76px;height:calc(100dvh - 100px)}.gn-tip{display:none}}
@media(prefers-reduced-motion:reduce){.gn-orb i,.gn-box,.gn-m.in{animation:none}}
