.fab{position:fixed;bottom:28px;left:28px;width:60px;height:60px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:9999;box-shadow:0 4px 20px #25d3664d;transition:box-shadow .3s,transform .2s;position:relative}.fab:hover{box-shadow:0 8px 32px #25d36673;transform:translateY(-2px)}.fab:active{transform:translateY(0) scale(.93)}.fab.active{transform:scale(.88);box-shadow:0 2px 10px #25d36633}.fab svg{width:28px;height:28px}.fab-ring{position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(37,211,102,.15);animation:fabRing 3s ease-in-out infinite}@keyframes fabRing{0%,to{opacity:1;transform:scale(1)}50%{opacity:0;transform:scale(1.15)}}.fab-badge{position:absolute;top:2px;right:2px;width:12px;height:12px;border-radius:50%;background:#22c55e;border:2px solid var(--surface-container, #0F111F);z-index:2}.chat-sheet{position:fixed;bottom:0;left:0;right:0;max-width:420px;margin:0 auto;height:580px;border-radius:16px 16px 0 0;display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(16px) scale(.96);pointer-events:none;transition:opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1);background:var(--surface-container, #0F111F);box-shadow:0 8px 40px #00000080;z-index:10000}.chat-sheet.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.chat-header{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#075e54,#0b7d6e);color:#fff}.chat-header-info{display:flex;gap:12px;align-items:center}.chat-avatar{width:40px;height:40px;border-radius:50%;background:#ffffff26;color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700}.chat-header-info strong{font-size:15px;font-weight:600;display:block;color:#fff}.chat-status{display:flex;align-items:center;gap:5px;font-size:11px;opacity:.8}.status-dot{width:6px;height:6px;border-radius:50%;background:#4ade80}.chat-header-actions{display:flex;gap:2px}.chat-header-actions button{background:none;border:none;color:#fffc;cursor:pointer;width:36px;height:36px;border-radius:50%;transition:background .2s;display:flex;align-items:center;justify-content:center}.chat-header-actions button:hover{background:#ffffff1a;color:#fff}.chat-header-actions svg{width:20px;height:20px}.chat-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--surface-container, #0F111F)}.chat-body:before{content:"";position:absolute;inset:0;opacity:.03;background-image:radial-gradient(circle at 25px 25px,rgba(129,140,248,.3) 1px,transparent 0);background-size:50px 50px;pointer-events:none}.chat-messages{flex:1;padding:12px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;position:relative;z-index:1}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:4px}.msg{display:flex;animation:msgIn .25s ease}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg.bot{justify-content:flex-start}.msg.user{justify-content:flex-end}.bubble{position:relative;padding:9px 14px 22px;max-width:82%;font-size:13.5px;line-height:1.55;word-wrap:break-word}.bot .bubble{background:var(--surface-container-high, #1C1D22);border-radius:4px 16px 16px;color:var(--on-surface);border:1px solid rgba(129,140,248,.06)}.user .bubble{background:#005c4b;color:#fff;border-radius:16px 4px 16px 16px}.time{position:absolute;bottom:4px;right:10px;font-size:9px;opacity:.45;letter-spacing:.02em}.user .time{color:#fff9}.typing-indicator{display:flex;padding:4px 16px 10px;align-items:center;position:relative;z-index:1}.typing-dots{display:flex;gap:5px;padding:10px 16px;background:var(--surface-container-high, #1C1D22);border-radius:4px 16px 16px;border:1px solid rgba(129,140,248,.06)}.typing-dots span{width:8px;height:8px;border-radius:50%;background:var(--on-surface-variant);opacity:.4;animation:typingDot 1.4s infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.chat-suggestions{display:flex;gap:6px;padding:6px 12px 4px;overflow-x:auto;flex-wrap:wrap;background:var(--surface-container, #0F111F);position:relative;z-index:1}.chat-suggestions::-webkit-scrollbar{display:none}.suggestion-chip{padding:7px 14px;border-radius:18px;border:1px solid rgba(129,140,248,.08);background:var(--surface-container-high, #1C1D22);color:var(--on-surface-variant);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;font-family:var(--font-family);transition:all .2s ease}.suggestion-chip:hover{background:#005c4b26;border-color:#005c4b40;color:#00bfa5;transform:translateY(-1px)}.suggestion-chip:active{transform:translateY(0) scale(.97)}.chat-input-bar{display:flex;align-items:center;gap:8px;padding:6px 10px 10px;background:var(--surface-container-high, #1C1D22);border-top:1px solid rgba(129,140,248,.04);position:relative;z-index:1}.input-wrap{flex:1;display:flex;align-items:center;padding:0 16px;border-radius:24px;background:var(--surface-container, #0F111F);border:1px solid var(--outline-variant);transition:border-color .2s}.input-wrap:focus-within{border-color:#075e54}.chat-input-bar input{flex:1;padding:9px 0;background:none;border:none;color:var(--on-surface);font-size:14px;font-family:var(--font-family);outline:none}.chat-input-bar input::placeholder{color:var(--on-surface-variant)}.chat-input-bar button{width:44px;height:44px;min-width:44px;border-radius:50%;border:none;background:#075e54;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .15s}.chat-input-bar button:hover{background:#0b7d6e}.chat-input-bar button:active{transform:scale(.9)}.chat-input-bar button svg{width:18px;height:18px;margin-left:2px}@media(min-width:768px){.chat-sheet{bottom:104px;left:28px;right:auto;border-radius:16px;height:580px}}
