/* 阿彪 (AhBiao) chat widget. Uses the site's tokens; works on every page. */
.ahb-fab{position:fixed;right:22px;bottom:22px;z-index:80;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font:600 26px/1 var(--serif);box-shadow:0 14px 34px -10px rgba(26,25,23,.45);transition:transform .35s var(--ease),background .25s,opacity .25s}
.ahb-fab:hover{transform:translateY(-2px) scale(1.04)}
.ahb-fab[hidden]{display:none}
.ahb{position:fixed;right:22px;bottom:22px;z-index:81;width:390px;max-width:calc(100vw - 24px);height:min(640px,calc(100vh - 44px));display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--hair);border-radius:18px;box-shadow:var(--shadow);overflow:hidden;opacity:0;transform:translateY(14px) scale(.98);pointer-events:none;transition:opacity .3s var(--ease),transform .4s var(--ease)}
.ahb.open{opacity:1;transform:none;pointer-events:auto}
.ahb-head{display:flex;align-items:center;gap:12px;padding:14px 14px 12px 16px;border-bottom:1px solid var(--hair);background:var(--panel)}
.ahb-mark{width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font:600 19px/1 var(--serif);flex:0 0 auto}
.ahb-tt{flex:1;min-width:0}
.ahb-tt b{display:block;font:400 19px/1.15 var(--serif);color:var(--ink);font-weight:400}
:root[data-lang="zh"] .ahb-tt b{font-weight:600}
.ahb-tt span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.ahb-ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--muted);font-size:18px;transition:background .2s,color .2s}
.ahb-ic:hover{background:var(--accent-soft);color:var(--ink)}
.ahb-msgs{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.ahb-b{max-width:86%;padding:10px 13px;border-radius:16px;font-size:14.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.ahb-b.a{align-self:flex-start;background:var(--panel);border:1px solid var(--hair);color:var(--body);border-bottom-left-radius:5px}
.ahb-b.u{align-self:flex-end;background:var(--bubble);color:var(--bubble-ink);border-bottom-right-radius:5px}
.ahb-b a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:.15em}
.ahb-b.u a{color:inherit}
.ahb-links{display:flex;flex-wrap:wrap;gap:6px;align-self:flex-start;max-width:86%;margin-top:-4px}
.ahb-links a,.ahb-links button{font:500 12.5px/1 var(--sans);color:var(--accent-ink);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);border-radius:999px;padding:7px 11px;background:var(--panel);transition:border-color .2s,background .2s}
.ahb-links a:hover,.ahb-links button:hover{border-color:var(--accent);background:var(--accent-soft)}
.ahb-chips{display:flex;flex-wrap:wrap;gap:7px;align-self:flex-start;max-width:92%}
.ahb-chip{font:500 13px/1 var(--sans);border:1px solid var(--hair-strong);border-radius:999px;padding:9px 12px;color:var(--ink);background:var(--panel);transition:border-color .2s,background .2s}
.ahb-chip:hover{border-color:var(--accent);background:var(--accent-soft)}
.ahb-dots{display:inline-flex;gap:4px;padding:4px 2px}
.ahb-dots i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:ahb-blink 1.2s infinite both}
.ahb-dots i:nth-child(2){animation-delay:.2s}.ahb-dots i:nth-child(3){animation-delay:.4s}
@keyframes ahb-blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.ahb-in{display:flex;gap:8px;align-items:flex-end;padding:10px 10px 10px 12px;border-top:1px solid var(--hair);background:var(--panel)}
.ahb-in textarea{flex:1;resize:none;max-height:110px;min-height:40px;border:1px solid var(--hair);border-radius:12px;padding:10px 12px;font:400 14.5px/1.45 var(--sans);color:var(--ink);background:var(--bg);outline:none;transition:border-color .2s}
.ahb-in textarea:focus{border-color:var(--accent)}
.ahb-send{height:40px;padding:0 15px;border-radius:12px;background:var(--accent);color:#fff;font:500 14px/1 var(--sans);flex:0 0 auto;transition:background .2s,opacity .2s}
.ahb-send:hover{background:var(--accent-ink)}
.ahb-send:disabled{opacity:.45;cursor:default}
@media(max-width:560px){
  .ahb-fab{right:14px;bottom:14px}
  .ahb{right:0;bottom:0;left:0;width:100%;max-width:100%;height:min(86vh,calc(100vh - 20px));border-radius:18px 18px 0 0}
}
@media(prefers-reduced-motion:reduce){.ahb{transition:none}.ahb-fab{transition:none}.ahb-dots i{animation:none;opacity:.6}}
