.fab{position:fixed;bottom:28px;left:28px;width:60px;height:60px;border-radius:50%;background:var(--primary);color:var(--on-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:9999;box-shadow:0 4px 20px #f59e0b4d;transition:box-shadow .3s,transform .2s;position:relative}.fab:hover{box-shadow:0 8px 32px #f59e0b73;transform:translateY(-2px)}.fab:active{transform:translateY(0) scale(.93)}.fab.active{transform:scale(.88);box-shadow:0 2px 10px #f59e0b33}.fab svg{width:28px;height:28px}.fab-ring{position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(245,158,11,.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:var(--tertiary);border:2px solid var(--surface);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);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,var(--secondary),#0891B2);color:var(--on-secondary)}.chat-header-info{display:flex;gap:12px;align-items:center}.chat-avatar{width:40px;height:40px;border-radius:50%;background:#ffffff26;color:var(--on-secondary);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:var(--on-secondary)}.chat-status{display:flex;align-items:center;gap:5px;font-size:11px;opacity:.8;color:var(--on-secondary)}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--tertiary)}.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)}.chat-body:before{content:"";position:absolute;inset:0;opacity:.03;background-image:radial-gradient(circle at 25px 25px,rgba(245,158,11,.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);border-radius:4px 16px 16px;color:var(--on-surface);border:1px solid var(--outline-variant)}.user .bubble{background:var(--primary);color:var(--on-primary);border-radius:16px 4px 16px 16px}.time{position:absolute;bottom:4px;right:10px;font-size:9px;opacity:.45;letter-spacing:.02em}.user .time{color:#1c191799}.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);border-radius:4px 16px 16px;border:1px solid var(--outline-variant)}.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);position:relative;z-index:1}.chat-suggestions::-webkit-scrollbar{display:none}.suggestion-chip{padding:7px 14px;border-radius:8px;border:1px solid var(--outline-variant);background:var(--surface-container-high);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:#06b6d41a;border-color:#06b6d433;color:var(--secondary);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);border-top:1px solid var(--outline-variant);position:relative;z-index:1}.input-wrap{flex:1;display:flex;align-items:center;padding:0 16px;border-radius:12px;background:var(--surface);border:1px solid var(--outline-variant);transition:border-color .2s}.input-wrap:focus-within{border-color:var(--secondary)}.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:var(--secondary);color:var(--on-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .15s}.chat-input-bar button:hover{background:#0891b2}.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}}
