.ntb{position:fixed;right:22px;bottom:22px;z-index:150;font-family:inherit}
.ntb-fab{position:relative;width:60px;height:60px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;color:#fff;background:var(--grad-d);box-shadow:0 16px 34px -10px rgba(192,38,211,.65);transition:transform .35s var(--ease)}
.ntb-fab:hover{transform:scale(1.07)}
.ntb-fab::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #C13AE6;animation:ring 2.4s ease-out infinite}
.ntb.open .ntb-fab::before{display:none}
.ntb-fab .i-x{display:none}
.ntb.open .ntb-fab .i-x{display:block}
.ntb.open .ntb-fab .i-chat{display:none}
.ntb-fab span{display:grid;place-items:center}
.ntb-dot{position:absolute;top:3px;right:3px;width:13px;height:13px;border-radius:50%;background:#22C55E;box-shadow:0 0 0 2.5px #fff}:where(:root[data-theme=dark]) .ntb-dot{box-shadow:0 0 0 2.5px #17122B}
.ntb.open .ntb-dot{display:none}
.ntb-tease{position:absolute;right:0;bottom:74px;width:250px;padding:14px 16px 14px 30px;border-radius:18px 18px 4px 18px;background:#fff;color:var(--tx2);font-size:14px;line-height:1.7;box-shadow:var(--sh-md);border:1px solid var(--line);cursor:pointer;animation:ntbIn .35s var(--ease)}:where(:root[data-theme=dark]) .ntb-tease{background:#17122B}
.ntb-tease b{color:var(--tx);display:block}
.ntb-tx{position:absolute;left:8px;top:6px;width:22px;height:22px;border:0;border-radius:50%;background:var(--soft);color:var(--mut);cursor:pointer;font-size:15px;line-height:1}
.ntb-panel{position:absolute;right:0;bottom:76px;width:380px;height:min(600px,calc(100vh - 120px));display:flex;flex-direction:column;border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 30px 70px -20px rgba(40,16,90,.45);animation:ntbIn .3s var(--ease);transform-origin:bottom right}:where(:root[data-theme=dark]) .ntb-panel{background:#17122B}
.ntb-panel[hidden]{display:none}
@keyframes ntbIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
.ntb-hd{display:flex;align-items:center;gap:11px;padding:14px 16px;color:#fff;background:var(--grad-d)}
.ntb-hd>div{flex:1;min-width:0}
.ntb-hd b{display:block;font-size:16px;line-height:1.3}
.ntb-hd small{display:flex;align-items:center;gap:6px;font-size:12.5px;opacity:.92}
.ntb-hd small i{width:8px;height:8px;border-radius:50%;background:#4ADE80;box-shadow:0 0 0 3px rgba(74,222,128,.3)}
.ntb-av{width:42px;height:42px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none;box-shadow:0 0 0 3px rgba(255,255,255,.3)}:where(:root[data-theme=dark]) .ntb-av{background:#17122B}
.ntb-av img{width:30px;height:30px;object-fit:contain}
.ntb-wa,.ntb-close{width:36px;height:36px;border-radius:50%;border:0;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.16);cursor:pointer;flex:none;transition:background .25s}
.ntb-wa:hover,.ntb-close:hover{background:rgba(255,255,255,.3)}
.ntb-log{flex:1;overflow-y:auto;padding:16px 14px 8px;display:flex;flex-direction:column;gap:10px;background:var(--soft2);overscroll-behavior:contain}
.ntb-m{max-width:86%;padding:10px 14px;border-radius:18px;font-size:14.5px;line-height:1.75;word-wrap:break-word;overflow-wrap:anywhere}
.ntb-m.bot{align-self:flex-start;background:#fff;color:var(--tx);border:1px solid var(--line);border-top-right-radius:6px}:where(:root[data-theme=dark]) .ntb-m.bot{background:#17122B}
.ntb-m.me{align-self:flex-end;color:#fff;background:linear-gradient(135deg,#7B2FF7,#B12FE0);border-top-left-radius:6px}
.ntb-m a{color:var(--v-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.ntb-m.me a{color:#fff}
.ntb-m a.ntb-walink{display:inline-flex;margin-top:4px;padding:4px 12px;border-radius:999px;background:#25D366;color:#fff;text-decoration:none}
.ntb-typing{display:flex;gap:5px;padding:14px 16px}
.ntb-typing i{width:7px;height:7px;border-radius:50%;background:#B9A6E6;animation:ntbDot 1.2s infinite}
.ntb-typing i:nth-child(2){animation-delay:.15s}
.ntb-typing i:nth-child(3){animation-delay:.3s}
@keyframes ntbDot{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-5px);opacity:1}}
.ntb-chips{display:flex;flex-wrap:wrap;gap:7px;padding:4px 14px 10px;background:var(--soft2)}
.ntb-chips[hidden]{display:none}
.ntb-chips button{border:1px solid #DCCBFB;background:#fff;color:var(--v-ink);font:inherit;font-size:13px;font-weight:700;padding:7px 12px;border-radius:999px;cursor:pointer;transition:background .25s,color .25s}:where(:root[data-theme=dark]) .ntb-chips button{border:1px solid #3A2D53;background:#17122B}
.ntb-chips button:hover{background:var(--v);color:#fff;border-color:var(--v)}
.ntb-in{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#fff}:where(:root[data-theme=dark]) .ntb-in{background:#17122B}
.ntb-in textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:16px;padding:10px 14px;font:inherit;font-size:14.5px;line-height:1.5;max-height:110px;background:var(--soft2);color:var(--tx);outline:none}
.ntb-in textarea:focus{border-color:#C9B1F8;box-shadow:0 0 0 3px rgba(123,47,247,.12)}:where(:root[data-theme=dark]) .ntb-in textarea:focus{border-color:#3A2D53}
.ntb-in button{width:44px;height:44px;border-radius:50%;border:0;flex:none;display:grid;place-items:center;color:#fff;background:var(--grad-d);cursor:pointer}
.ntb-in button svg{transform:scaleX(-1)}
.ntb-note{margin:0;padding:0 14px 10px;font-size:11.5px;color:var(--mut);background:#fff;line-height:1.6}:where(:root[data-theme=dark]) .ntb-note{background:#17122B}
.ntb-note a{color:inherit;text-decoration:underline}
.ntb-lf{align-self:stretch;display:grid;gap:8px;padding:12px;border-radius:16px;background:#fff;border:1px dashed #D9C7FB}:where(:root[data-theme=dark]) .ntb-lf{background:#17122B;border:1px dashed #3A2D53}
.ntb-lf input{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:14px;background:var(--soft2);color:var(--tx)}
.ntb-lf .btn{width:100%;justify-content:center}
@media (max-width:520px){.ntb{right:16px;bottom:16px}
.ntb-fab{width:56px;height:56px}
.ntb.open{inset:0;right:0;bottom:0;z-index:350}
.ntb.open .ntb-fab{display:none}
.ntb-panel{position:fixed;inset:0;width:auto;height:100%;height:100dvh;border-radius:0;border:0}
.ntb-tease{width:min(250px,calc(100vw - 40px))}}
@media print{.ntb{display:none}}
