/* AnswerBot widget — AnswerGlow. Lightbulb launcher + glass chat panel. */
:root{--ab-ink:#1d1a16;--ab-ink2:#2a231c;--ab-mute:#6a6157;--ab-line:rgba(120,90,50,.16);--ab-glow:#ff9a3c;--ab-glow2:#ffcf5a;--ab-hot:#ff6a3c;--ab-font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--ab-ease:cubic-bezier(.2,.9,.25,1.15)}
.ab-root,.ab-root *{box-sizing:border-box}
.ab-root{font:15px/1.5 var(--ab-font);color:var(--ab-ink)}

/* ---------- Launcher ---------- */
.ab-launch{position:fixed;right:22px;bottom:22px;z-index:2147483000;display:flex;align-items:center;gap:10px}
.ab-tip{position:absolute;right:0;bottom:calc(100% + 10px);background:rgba(29,26,22,.92);color:#fff6e6;font:600 13px/1 var(--ab-font);padding:10px 14px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.18);white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ab-tip.show{opacity:1;transform:none}
.ab-root.is-open .ab-tip{opacity:0}
.ab-launch-label{background:rgba(29,26,22,.92);color:#fff6e6;font:600 12.5px/1.2 var(--ab-font);padding:8px 12px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.18);white-space:nowrap;border:1px solid rgba(255,207,90,.38);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;transition:opacity .25s,transform .25s}
.ab-launch-label strong{font-weight:800}
.ab-root.is-open .ab-launch-label{opacity:0;transform:translateX(8px)}
.ab-fab{position:relative;width:64px;height:64px;border-radius:50%;border:1px solid rgba(255,207,90,.35);cursor:pointer;padding:0;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 35%,#3a3027 0%,#1d1a16 70%);box-shadow:0 10px 30px rgba(29,26,22,.35),inset 0 1px 0 rgba(255,255,255,.08);transition:transform .25s var(--ab-ease),box-shadow .4s}
.ab-fab:hover{transform:translateY(-2px) scale(1.04)}
.ab-fab:active{transform:scale(.96)}
.ab-fab:focus-visible{outline:3px solid var(--ab-hot);outline-offset:3px}
/* idle pulse ring */
.ab-fab:before,.ab-fab:after{content:"";position:absolute;inset:-1px;border-radius:50%;border:2px solid rgba(255,170,70,.55);opacity:0;animation:ab-ring 3.2s ease-out infinite;pointer-events:none}
.ab-fab:after{animation-delay:1.6s}
@keyframes ab-ring{0%{transform:scale(1);opacity:.55}80%,100%{transform:scale(1.55);opacity:0}}
.ab-root.is-open .ab-fab:before,.ab-root.is-open .ab-fab:after{animation:none;opacity:0}
.ab-root.is-open .ab-fab{background:radial-gradient(circle at 50% 40%,#5a3a12 0%,#241b12 75%);box-shadow:0 0 0 1px rgba(255,207,90,.6),0 0 28px 6px rgba(255,170,60,.55),0 0 70px 18px rgba(255,140,40,.28)}

/* lightbulb svg */
.ab-bulb{width:34px;height:34px;overflow:visible;display:block}
.ab-bulb .glass{fill:rgba(255,220,150,.10);stroke:#e9c58f;stroke-width:1.6;transition:fill .3s,stroke .3s}
.ab-bulb .fil{fill:none;stroke:#b89466;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s}
.ab-bulb .base{fill:none;stroke:#cdb08a;stroke-width:1.6;stroke-linecap:round}
.ab-bulb .rays{stroke:#ffd27a;stroke-width:1.8;stroke-linecap:round;opacity:0;transform-origin:16px 13px;transform:scale(.6);transition:opacity .3s,transform .45s var(--ab-ease)}
.ab-bulb .halo{fill:url(#ab-halo);opacity:0;transition:opacity .4s}
/* idle: faint breathing filament */
.ab-bulb .fil{animation:ab-breathe 3.2s ease-in-out infinite}
@keyframes ab-breathe{0%,100%{stroke:#b89466}50%{stroke:#ffc76a}}
/* ON state */
.ab-root.is-open .ab-bulb .glass,.ab-bulb.on .glass{fill:url(#ab-lit);stroke:#fff1c9;filter:drop-shadow(0 0 6px rgba(255,190,80,.9))}
.ab-root.is-open .ab-bulb .fil,.ab-bulb.on .fil{stroke:#fffbe8;animation:none}
.ab-root.is-open .ab-bulb .rays,.ab-bulb.on .rays{opacity:1;transform:scale(1)}
.ab-root.is-open .ab-bulb .halo,.ab-bulb.on .halo{opacity:1}
.ab-root.is-open .ab-bulb .base{stroke:#ffe2ad}
/* flicker-on when clicked */
.ab-root.flick .ab-fab .ab-bulb{animation:ab-flick .7s steps(1,end)}
@keyframes ab-flick{0%{opacity:.35}12%{opacity:1}22%{opacity:.45}34%{opacity:1}44%{opacity:.7}56%,100%{opacity:1}}

/* ---------- Panel ---------- */
.ab-panel{position:fixed;right:22px;bottom:100px;z-index:2147483001;width:390px;max-width:calc(100vw - 24px);height:600px;max-height:calc(100vh - 124px);display:flex;flex-direction:column;
  background:linear-gradient(160deg,rgba(255,253,249,.86),rgba(255,246,232,.80));-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);
  border:1px solid rgba(255,255,255,.6);border-radius:22px;box-shadow:0 30px 80px rgba(60,35,10,.28),0 0 0 1px rgba(255,170,70,.18),inset 0 1px 0 rgba(255,255,255,.7);overflow:hidden;
  transform-origin:calc(100% - 32px) calc(100% + 40px);opacity:0;visibility:hidden;transform:translateY(16px) scale(.9);transition:opacity .28s ease,transform .38s var(--ab-ease),visibility 0s linear .38s}
.ab-root.is-open .ab-panel{opacity:1;visibility:visible;transform:none;transition:opacity .25s ease,transform .42s var(--ab-ease),visibility 0s}
.ab-head{position:relative;display:flex;align-items:center;gap:10px;padding:14px 12px 14px 16px;color:#fff6e6;background:linear-gradient(120deg,#1d1a16 0%,#2f2418 60%,#4a2f12 100%);overflow:hidden}
.ab-head:after{content:"";position:absolute;right:-40px;top:-60px;width:180px;height:180px;background:radial-gradient(circle,rgba(255,170,60,.45),transparent 65%);pointer-events:none}
.ab-speak-edge{position:absolute;inset:0;pointer-events:none;z-index:2;opacity:0;transition:opacity .25s}
.ab-root.is-speaking .ab-speak-edge{opacity:1;box-shadow:inset 0 0 0 2px rgba(255,207,90,calc(.5 + var(--ab-speak-level,.55)*.45)),inset 0 2px 16px rgba(255,207,90,calc(.28 + var(--ab-speak-level,.55)*.4)),inset -22px 0 40px rgba(255,154,60,calc(.22 + var(--ab-speak-level,.55)*.38));animation:ab-speak-pulse 1.15s ease-in-out infinite}
.ab-speak-edge:before{content:"";position:absolute;left:-45%;top:0;height:3px;width:42%;border-radius:0 0 2px 2px;background:linear-gradient(90deg,transparent,#fff1c9,var(--ab-glow2),transparent);filter:drop-shadow(0 0 6px var(--ab-glow));opacity:0}
.ab-root.is-speaking .ab-speak-edge:before{opacity:1;animation:ab-speak-sweep 2s linear infinite}
@keyframes ab-speak-pulse{0%,100%{filter:brightness(.92)}50%{filter:brightness(1.28)}}
@keyframes ab-speak-sweep{0%{transform:translateX(0)}100%{transform:translateX(360%)}}
.ab-head .ab-bulb{width:30px;height:30px;flex:none;position:relative;z-index:1}
.ab-title{flex:1;min-width:0;position:relative;z-index:1}
.ab-title h2{margin:0;font:800 16px/1.2 var(--ab-font);letter-spacing:-.01em;color:#fff6e6}
.ab-title p{margin:3px 0 0;font-size:12px;color:#e8d6bd;display:flex;align-items:center;gap:6px}
.ab-live{width:7px;height:7px;border-radius:50%;background:#7CF29A;box-shadow:0 0 8px #7CF29A;flex:none}
.ab-badge{display:inline-flex;align-items:center;font:600 11px/1 var(--ab-font);color:#2a1700;background:linear-gradient(135deg,var(--ab-glow2),var(--ab-glow));padding:3px 8px;border-radius:999px;box-shadow:0 0 10px rgba(255,170,60,.35)}
.ab-hbtn{position:relative;z-index:1;border:0;background:rgba(255,255,255,.08);color:#fff6e6;width:34px;height:34px;border-radius:10px;cursor:pointer;display:grid;place-items:center;font-size:18px;line-height:1;flex:none}
.ab-hbtn:hover{background:rgba(255,255,255,.16)}
.ab-new{width:auto;padding:0 10px;font:600 12px/1 var(--ab-font);letter-spacing:.01em;white-space:nowrap}
.ab-hbtn:focus-visible,.ab-panel button:focus-visible,.ab-panel input:focus-visible,.ab-panel textarea:focus-visible,.ab-panel a:focus-visible{outline:3px solid var(--ab-hot);outline-offset:2px}
.ab-seg{display:flex;gap:4px;margin:10px 12px 0;padding:4px;background:rgba(29,26,22,.06);border-radius:12px}
.ab-tab{flex:1;border:0;background:transparent;border-radius:9px;padding:7px 8px;font:600 13px/1 var(--ab-font);cursor:pointer;color:var(--ab-mute);display:flex;align-items:center;justify-content:center;gap:6px}
.ab-tab svg{display:block;flex:none}
.ab-tab[aria-selected="true"]{background:#fff;color:var(--ab-ink);box-shadow:0 2px 8px rgba(60,35,10,.12)}
.ab-tab-talk{color:#7a3a06;font-weight:700;background:rgba(255,154,60,.14);box-shadow:inset 0 0 0 1px rgba(255,154,60,.4)}
.ab-tab-talk:hover{background:rgba(255,154,60,.22)}
.ab-tab-talk[aria-selected="true"]{background:linear-gradient(135deg,var(--ab-glow2),var(--ab-glow));color:#2a1700;box-shadow:0 2px 10px rgba(255,140,40,.45)}
.ab-pane{flex:1;display:flex;flex-direction:column;min-height:0}
.ab-pane[hidden]{display:none}
.ab-log{flex:1;overflow-y:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.ab-msg{max-width:86%;padding:9px 13px;border-radius:16px;white-space:pre-wrap;word-wrap:break-word;animation:ab-in .3s var(--ab-ease)}
@keyframes ab-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ab-msg.user{align-self:flex-end;background:linear-gradient(135deg,var(--ab-glow2),var(--ab-glow));color:#2a1700;border-bottom-right-radius:5px}
.ab-msg.bot{align-self:flex-start;background:rgba(255,255,255,.92);border:1px solid var(--ab-line);border-bottom-left-radius:5px;box-shadow:0 2px 10px rgba(60,35,10,.05)}
.ab-msg.bot a{color:#a24a06;font-weight:700;text-underline-offset:3px}
.ab-msg.sys{align-self:center;font-size:12.5px;color:var(--ab-mute);background:none;padding:2px 8px;text-align:center}
.ab-typing{display:inline-flex;gap:4px;align-items:center;padding:3px 0}
.ab-typing i{width:7px;height:7px;border-radius:50%;background:var(--ab-glow);opacity:.4;animation:ab-dot 1.2s infinite}
.ab-typing i:nth-child(2){animation-delay:.15s}.ab-typing i:nth-child(3){animation-delay:.3s}
@keyframes ab-dot{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-3px)}}
.ab-starter[hidden]{display:none}
.ab-cta-row{padding:2px 14px 8px}
.ab-talk-cta{width:100%;border:1px solid rgba(255,154,60,.55);background:linear-gradient(135deg,rgba(255,207,90,.42),rgba(255,154,60,.22));color:#5a2a00;border-radius:14px;padding:11px 14px;font:700 14px/1 var(--ab-font);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 16px -8px rgba(255,140,40,.85);transition:transform .2s,box-shadow .2s,background .2s}
.ab-talk-cta svg{flex:none}
.ab-talk-cta:hover{background:linear-gradient(135deg,var(--ab-glow2),var(--ab-glow));transform:translateY(-1px);box-shadow:0 8px 18px -6px rgba(255,140,40,.9)}
.ab-chips[hidden]{display:none}
.ab-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px}
.ab-chip{border:1px solid rgba(255,154,60,.45);background:rgba(255,255,255,.75);color:#7a3a06;border-radius:999px;padding:6px 11px;font:600 12.5px/1.2 var(--ab-font);cursor:pointer;transition:background .2s,transform .2s}
.ab-chip:hover{background:#fff1de;transform:translateY(-1px)}
.ab-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--ab-line);background:rgba(255,255,255,.55)}
.ab-form input{flex:1;min-width:0;border:1px solid var(--ab-line);background:#fff;border-radius:12px;padding:11px 12px;font:inherit;color:var(--ab-ink)}
.ab-send{flex:none;width:44px;border:0;border-radius:12px;cursor:pointer;background:linear-gradient(135deg,var(--ab-glow2),var(--ab-glow));color:#2a1700;display:grid;place-items:center;box-shadow:0 6px 16px -6px rgba(255,140,40,.8)}
.ab-send:disabled{opacity:.5;cursor:default}
.ab-foot{margin:0;padding:6px 12px 9px;font-size:11px;color:var(--ab-mute);text-align:center;background:rgba(255,255,255,.55)}
.ab-foot a{color:inherit}
.ab-btn{border:0;border-radius:12px;padding:11px 14px;font:700 14px/1 var(--ab-font);cursor:pointer;background:linear-gradient(135deg,var(--ab-glow2),var(--ab-glow));color:#2a1700}
/* lead card */
.ab-lead{display:grid;gap:8px;background:rgba(255,255,255,.95);border:1px solid rgba(255,154,60,.35);border-radius:16px;padding:12px;align-self:stretch;box-shadow:0 6px 20px rgba(60,35,10,.08);animation:ab-in .3s var(--ab-ease)}
.ab-lead strong{font-size:14px}
.ab-lead .ab-sub{margin:-4px 0 2px;font-size:12.5px;color:var(--ab-mute)}
.ab-lead label{font-size:12px;font-weight:600;color:var(--ab-mute);display:grid;gap:3px}
.ab-lead input{border:1px solid var(--ab-line);border-radius:10px;padding:9px 10px;font:inherit;font-weight:400;color:var(--ab-ink);background:#fff}
.ab-lead .ab-fine{font-size:11px;color:var(--ab-mute);margin:0}
.ab-lead .ab-err{font-size:12.5px;color:#a3260a;min-height:0;margin:0}
.ab-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
/* voice */
.ab-talk-ctl{padding:16px;text-align:center;border-top:1px solid var(--ab-line);background:rgba(255,255,255,.55)}
.ab-mic{width:74px;height:74px;border-radius:50%;border:0;cursor:pointer;color:#2a1700;display:inline-grid;place-items:center;background:radial-gradient(circle at 50% 35%,#ffe08a,var(--ab-glow));box-shadow:0 0 0 0 rgba(255,154,60,.6),0 10px 24px -8px rgba(255,140,40,.9)}
.ab-mic.live{animation:ab-mic 1.6s infinite}
@keyframes ab-mic{0%{box-shadow:0 0 0 0 rgba(255,154,60,.6)}70%{box-shadow:0 0 0 20px rgba(255,154,60,0)}100%{box-shadow:0 0 0 0 rgba(255,154,60,0)}}
.ab-status{margin-top:8px;font-size:12.5px;color:var(--ab-mute)}
.ab-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (max-width:520px){
  .ab-launch{right:16px;bottom:16px}
  .ab-tip{display:none}
  .ab-launch-label{font-size:11px;padding:7px 10px}
  .ab-launch-rest{display:none}
  .ab-new{padding:0 8px;font-size:11.5px}
  .ab-panel{right:0;left:0;bottom:0;width:100%;max-width:100%;height:88vh;height:88dvh;max-height:none;border-radius:22px 22px 0 0;transform-origin:50% 100%;transform:translateY(40px);padding-bottom:env(safe-area-inset-bottom)}
  .ab-root.is-open .ab-launch{opacity:0;pointer-events:none;transform:scale(.8)}
  .ab-launch{transition:opacity .2s,transform .2s}
  .ab-form input{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  .ab-root *,.ab-root *:before,.ab-root *:after{animation:none!important;transition-duration:.01ms!important}
  .ab-root.is-speaking .ab-speak-edge{box-shadow:inset 0 0 0 2px rgba(255,207,90,.85),inset 0 2px 14px rgba(255,207,90,.45),inset -22px 0 36px rgba(255,154,60,.4)}
  .ab-root.is-speaking .ab-speak-edge:before{opacity:.85;left:20%;width:60%;filter:drop-shadow(0 0 4px var(--ab-glow))}
}
@media print{.ab-root{display:none}}
