.soupsi-chat-toggle{
    position:fixed;
    bottom:100px;
    right:24px;
    width:56px;
    height:56px;
    background:#4F6EF7;
    color:#fff;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    font-size:22px;
    box-shadow:0 10px 30px rgba(0,0,0,.3);
    z-index:9999;
}

.soupsi-chat-box{
    position:fixed;
    bottom:170px;
    right:24px;
    width:340px;
    background:#fff;
    border-radius:18px;
    box-shadow:0 25px 60px rgba(0,0,0,.25);
    display:none;
    flex-direction:column;
    overflow:hidden;
    z-index:9999;
}

.soupsi-chat-header{
    background:#4F6EF7;
    color:#fff;
    padding:14px;
    font-size:14px;
}

.soupsi-chat-messages{
    padding:14px;
    height:280px;
    overflow-y:auto;
    font-size:13px;
}

.soupsi-chat-input{
    display:flex;
    border-top:1px solid #eee;
}

.soupsi-chat-input input{
    flex:1;
    padding:12px;
    border:none;
    outline:none;
}

.soupsi-chat-input button{
    padding:12px 16px;
    border:none;
    background:#4F6EF7;
    color:#fff;
    cursor:pointer;
}

.bot{
    background:#F1F5FF;
    padding:10px;
    border-radius:12px;
    margin-bottom:8px;
}

.user{
    background:#4F6EF7;
    color:#fff;
    padding:10px;
    border-radius:12px;
    margin-bottom:8px;
    text-align:right;
}
/* CHAT AVATAR */
.chat-avatar{
    width:32px;height:32px;
    border-radius:50%;
    background:url('https://images.unsplash.com/photo-1595152772835-219674b2a8a6?auto=format&fit=crop&w=80&q=80') center/cover;
    margin-right:8px;
}

@media(max-width:900px){
    .contact-grid{grid-template-columns:1fr;}
    .contact-hero h1{font-size:40px;}
}

.whatsapp-fab{
    z-index:9998; 
}
#soupsiChatLauncher{
    z-index:9999;
}
.typing{
    background:#EEF2FF;
    padding:10px 14px;
    border-radius:14px;
    font-size:13px;
    margin-bottom:10px;
    width:fit-content;
    display:flex;
    gap:4px;
}

.typing span{
    width:6px;
    height:6px;
    background:#4F6EF7;
    border-radius:50%;
    animation:blink 1.4s infinite both;
}

.typing span:nth-child(2){animation-delay:.2s}
.typing span:nth-child(3){animation-delay:.4s}

@keyframes blink{
    0%{opacity:.2}
    20%{opacity:1}
    100%{opacity:.2}
}
.handoff{
    display:inline-block;
    margin-top:8px;
    padding:10px 14px;
    background:#4F6EF7;
    color:#fff;
    border-radius:10px;
    font-size:13px;
    text-decoration:none;
}

.handoff:hover{
    opacity:.9;
}