.dfsa-chat-wrapper { position: fixed; bottom: 20px; right: 20px; z-index: 99999; --dfsa:#3493a5; }
.dfsa-chat-wrapper.dfsa-rtl { right: auto; left: 20px; }

/* Reset theme/global button styles inside chat widget */
.dfsa-chat-wrapper button,
.dfsa-chat-wrapper [type="button"],
.dfsa-chat-wrapper [type="submit"] {
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    color: inherit !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    outline: none !important;
    margin: 0 !important;
    white-space: nowrap !important;
    user-select: none !important;
}

.dfsa-chat-toggle { background: transparent; border: 0; padding: 0; cursor: pointer; }
.dfsa-chat-toggle img { width: 58px; height: 58px; display:block; }
.dfsa-chat-box { width: 390px; max-width: calc(100vw - 30px); height: 560px; background:#fff; border-radius:14px; box-shadow:0 8px 30px rgba(0,0,0,.15); overflow:hidden; display:none; flex-direction:column; position:absolute; bottom:68px; right:0; }
.dfsa-rtl .dfsa-chat-box { right:auto; left:0; }
.dfsa-chat-box.open { display:flex; }
.dfsa-chat-header { background:var(--dfsa); color:#fff; padding:14px 16px 14px 44px; position:relative; }
.dfsa-chat-header-content { text-align:center; width:100%; }
.dfsa-chat-header h3 { margin:0; font-size:16px; line-height:1.35; }
.dfsa-chat-header p { margin:6px 0 0; font-size:12px; opacity:.95; }
.dfsa-chat-close { position:absolute; left:10px; top:8px; font-size:28px; line-height:1; border:0; background:transparent; color:#ffffff; cursor:pointer; padding:0 6px; }
.dfsa-rtl .dfsa-chat-close { left:auto; right:10px; }
.dfsa-chat-messages { flex:1; overflow:auto; padding:14px; background:#f7fafb; }
.dfsa-messages-inner { display:flex; flex-direction:column; gap:10px; }
.dfsa-msg { max-width:85%; padding:10px 12px; border-radius:12px; font-size:14px; line-height:1.45; word-break:break-word; }
.dfsa-user { margin-left:auto; background:var(--dfsa); color:#fff; }
.dfsa-assistant { margin-right:auto; background:#fff; color:#222; border:1px solid #e7edf0; }
.dfsa-loading-msg { display:flex; align-items:center; gap:6px; width:fit-content; }
.dfsa-loading-dot { width:8px; height:8px; border-radius:50%; background:var(--dfsa); opacity:.35; animation: dfsaDot 1s infinite ease-in-out; }
.dfsa-loading-dot:nth-child(2) { animation-delay:.15s; }
.dfsa-loading-dot:nth-child(3) { animation-delay:.3s; }
@keyframes dfsaDot {
    0%, 80%, 100% { transform: translateY(0); opacity:.35; }
    40% { transform: translateY(-4px); opacity:1; }
}
.dfsa-empty-state { min-height:200px; display:flex; align-items:center; justify-content:center; }
.dfsa-empty-icon { width:82px; height:82px; opacity:.7; }
.dfsa-chat-input-wrap { border-top:1px solid #e6ecef; padding:12px; display:flex; gap:10px; align-items:flex-end; }
.dfsa-chat-icons-col { display:flex; flex-direction:column; gap:8px; align-self:flex-end; }
.dfsa-register-btn { width:44px; height:44px; flex:0 0 44px; border:1px solid #dbe4e8 !important; background:#fff !important; color:var(--dfsa) !important; border-radius:10px; padding:0; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.dfsa-voice-btn { width:44px; height:44px; flex:0 0 44px; border:1px solid #dbe4e8 !important; background:#fff !important; color:var(--dfsa) !important; border-radius:10px; padding:0; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.dfsa-register-btn:hover,
.dfsa-register-btn:focus,
.dfsa-register-btn:active {
    background:#fff !important;
    color:var(--dfsa) !important;
    border-color:#dbe4e8 !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    text-decoration:none !important;
}
.dfsa-voice-btn:hover,
.dfsa-voice-btn:focus,
.dfsa-voice-btn:active {
    background:#fff !important;
    color:var(--dfsa) !important;
    border-color:#dbe4e8 !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    text-decoration:none !important;
}
.dfsa-voice-btn.is-listening {
    color:#fff !important;
    background:var(--dfsa) !important;
    border-color:var(--dfsa) !important;
}
.dfsa-chat-input { flex:1; min-height:56px; max-height:160px; border:1px solid #dbe4e8; border-radius:12px; padding:12px 12px; resize:vertical; font-size:15px; line-height:1.5; }
.dfsa-chat-send { border:0 !important; background:var(--dfsa) !important; color:#fff !important; border-radius:10px; min-width:64px; height:44px; padding:0 16px; cursor:pointer; font-weight:600; }
.dfsa-chat-send:hover,
.dfsa-chat-send:focus,
.dfsa-chat-send:active {
    background:var(--dfsa) !important;
    color:#fff !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    text-decoration:none !important;
}
.dfsa-lead-form-wrap { border-top:1px solid #e6ecef; padding:12px; background:#fcfeff; }
.dfsa-lead-form { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.dfsa-lead-form input, .dfsa-lead-form select { border:1px solid #dbe4e8; border-radius:8px; padding:8px; font-size:13px; }
.dfsa-lead-submit { grid-column:1/-1; border:0 !important; background:var(--dfsa) !important; color:#fff !important; border-radius:8px; padding:10px; cursor:pointer; font-size:14px !important; font-weight:700 !important; }

