/* ═══════════════════════════════════════════════════
   SocialisePro — Chatbot Widget v2
   Brand: mint #88DDCA / coral #E8887E / navy #0C2430
   ═══════════════════════════════════════════════════ */

:root {
    --sp-bg: #F0F7F4;
    --sp-white: #FAFAF5;
    --sp-pure-white: #FFFFFF;
    --sp-navy: #0C2430;
    --sp-navy-light: #143845;
    --sp-mint: #88DDCA;
    --sp-mint-light: #A8E8D8;
    --sp-mint-soft: rgba(136, 221, 202, 0.15);
    --sp-coral: #E8887E;
    --sp-coral-soft: rgba(232, 136, 126, 0.12);
    --sp-text: #0C2430;
    --sp-text-body: #2A4A58;
    --sp-text-muted: #6E8A96;
    --sp-border: rgba(12, 36, 48, 0.1);
    --sp-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --sp-font-brand: 'DM Serif Display', Georgia, serif;
}

@keyframes spFadeIn { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@keyframes spDot { 0%,60%,100% { transform:translateY(0); opacity:.4; } 30% { transform:translateY(-5px); opacity:1; } }
@keyframes spSlideUp { from { opacity:0; transform:translateY(16px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes spPulse { 0%,100% { box-shadow:0 3px 16px rgba(136,221,202,0.3); } 50% { box-shadow:0 3px 16px rgba(136,221,202,0.3), 0 0 0 8px rgba(136,221,202,0.12); } }

#sp-chatbot-toggle {
    position:fixed; bottom:24px; right:24px; z-index:99999;
    width:56px; height:56px; border-radius:16px;
    background:var(--sp-navy); color:var(--sp-mint);
    border:2px solid var(--sp-mint); cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 3px 20px rgba(12,36,48,0.2); transition:transform .2s; padding:0;
}
#sp-chatbot-toggle:hover { transform:scale(1.06); }
#sp-chatbot-toggle.sp-pulse { animation:spPulse 2.2s infinite; }

#sp-chatbot-window {
    position:fixed; bottom:24px; right:24px; z-index:99999;
    width:380px; max-width:calc(100vw - 32px);
    height:580px; max-height:calc(100vh - 48px);
    border-radius:20px; overflow:hidden;
    background:var(--sp-bg); border:1px solid var(--sp-border);
    box-shadow:0 10px 40px rgba(12,36,48,0.12);
    display:none; flex-direction:column;
    animation:spSlideUp .35s cubic-bezier(.16,1,.3,1);
    font-family:var(--sp-font);
}
#sp-chatbot-window.sp-open { display:flex; }

.sp-header {
    padding:14px 16px; background:var(--sp-navy);
    display:flex; align-items:center; justify-content:space-between; flex-shrink:0;
}
.sp-header-left { display:flex; align-items:center; gap:10px; }
.sp-logo-mark {
    width:38px; height:38px; border-radius:12px; background:var(--sp-mint);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--sp-font-brand); font-size:20px; font-weight:700; color:var(--sp-navy); flex-shrink:0;
}
.sp-header-title { font-family:var(--sp-font-brand); font-size:17px; color:var(--sp-pure-white); line-height:1.2; }
.sp-header-subtitle { font-size:11px; color:var(--sp-mint-light); display:flex; align-items:center; gap:5px; margin-top:2px; }
.sp-online-dot { width:6px; height:6px; border-radius:50%; background:var(--sp-mint); display:inline-block; transition:all .3s; }
.sp-dot-human { background:var(--sp-coral); box-shadow:0 0 0 3px rgba(232,136,126,0.25); animation:spDotPulse 2s infinite; }
@keyframes spDotPulse { 0%,100% { box-shadow:0 0 0 3px rgba(232,136,126,0.25); } 50% { box-shadow:0 0 0 6px rgba(232,136,126,0.1); } }
.sp-close-btn {
    background:rgba(255,255,255,.08); border:none; color:var(--sp-mint-light); cursor:pointer;
    width:32px; height:32px; border-radius:10px; display:flex; align-items:center; justify-content:center; transition:background .15s; padding:0;
}
.sp-close-btn:hover { background:rgba(255,255,255,.15); }

.sp-messages { flex:1; overflow-y:auto; padding:14px 12px; background:var(--sp-bg); }
.sp-messages::-webkit-scrollbar { width:3px; }
.sp-messages::-webkit-scrollbar-track { background:transparent; }
.sp-messages::-webkit-scrollbar-thumb { background:var(--sp-border); border-radius:3px; }

.sp-msg { display:flex; margin-bottom:10px; animation:spFadeIn .3s ease; }
.sp-msg-user { justify-content:flex-end; }
.sp-msg-bot { justify-content:flex-start; }

.sp-avatar {
    width:28px; height:28px; border-radius:10px; background:var(--sp-navy);
    display:flex; align-items:center; justify-content:center;
    margin-right:8px; flex-shrink:0; margin-top:2px;
    font-family:var(--sp-font-brand); font-size:14px; font-weight:700; color:var(--sp-mint);
}
.sp-avatar-admin { background:var(--sp-coral); color:var(--sp-pure-white); font-size:12px; }

.sp-bubble {
    max-width:78%; padding:10px 14px; font-size:13px; line-height:1.6;
    font-family:var(--sp-font); white-space:pre-wrap; word-break:break-word;
}
.sp-bubble-bot { border-radius:4px 16px 16px 16px; background:var(--sp-pure-white); color:var(--sp-text-body); border:1px solid var(--sp-border); box-shadow:0 1px 3px rgba(12,36,48,0.04); }
.sp-bubble-user { border-radius:16px 16px 4px 16px; background:var(--sp-navy); color:var(--sp-white); }
.sp-bubble-admin { border-radius:4px 16px 16px 16px; background:#FFF5F4; color:var(--sp-text-body); border:1px solid rgba(232,136,126,0.25); box-shadow:0 1px 3px rgba(232,136,126,0.08); }

/* ─── Email collection form ─── */
.sp-email-form {
    display:flex; flex-direction:column; align-items:center;
    padding:30px 20px; text-align:center; animation:spFadeIn .4s ease;
}
.sp-email-icon { font-size:36px; margin-bottom:12px; }
.sp-email-title { font-family:var(--sp-font-brand); font-size:18px; color:var(--sp-navy); margin-bottom:6px; }
.sp-email-subtitle { font-size:13px; color:var(--sp-text-muted); margin-bottom:16px; line-height:1.5; }
.sp-email-input {
    width:100%; max-width:260px; padding:10px 14px; border-radius:10px;
    background:var(--sp-pure-white); border:1px solid var(--sp-border);
    color:var(--sp-text); font-size:13px; font-family:var(--sp-font);
    margin-bottom:8px; outline:none; transition:border .2s;
}
.sp-email-input:focus { border-color:var(--sp-mint); }
.sp-email-input:-webkit-autofill,
.sp-email-input:-webkit-autofill:hover,
.sp-email-input:-webkit-autofill:focus {
    -webkit-box-shadow:0 0 0 50px var(--sp-pure-white) inset !important;
    -webkit-text-fill-color:var(--sp-text) !important;
}
.sp-email-btn {
    width:100%; max-width:260px; padding:10px; border-radius:10px;
    background:var(--sp-navy); color:var(--sp-mint); border:none;
    font-size:13px; font-weight:600; cursor:pointer; margin-top:4px;
    font-family:var(--sp-font); transition:opacity .2s;
}
.sp-email-btn:hover { opacity:.9; }
.sp-email-skip {
    background:none; border:none; color:var(--sp-text-muted); font-size:12px;
    cursor:pointer; margin-top:10px; text-decoration:underline;
    font-family:var(--sp-font);
}
.sp-email-skip:hover { color:var(--sp-navy); }

/* ─── Suggestions ─── */
.sp-suggestions { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; margin-left:36px; animation:spFadeIn .4s ease .15s both; }
.sp-sug-btn {
    padding:6px 12px; border-radius:20px; background:var(--sp-mint-soft);
    border:1px solid rgba(136,221,202,0.3); color:var(--sp-navy-light);
    font-size:12px; cursor:pointer; transition:all .2s; font-family:var(--sp-font);
}
.sp-sug-btn:hover { background:var(--sp-mint); border-color:var(--sp-mint); color:var(--sp-navy); }

/* ─── Typing ─── */
.sp-typing { display:flex; gap:5px; padding:4px 0; align-items:center; }
.sp-typing-dot { width:6px; height:6px; border-radius:50%; background:var(--sp-mint); }
.sp-typing-dot:nth-child(1) { animation:spDot 1.4s infinite 0s; }
.sp-typing-dot:nth-child(2) { animation:spDot 1.4s infinite .2s; }
.sp-typing-dot:nth-child(3) { animation:spDot 1.4s infinite .4s; }

/* ─── Contact strip ─── */
.sp-contact-strip { padding:8px 12px; background:var(--sp-pure-white); border-top:1px solid var(--sp-border); display:flex; gap:8px; flex-shrink:0; }
.sp-contact-btn {
    flex:1; display:flex; align-items:center; justify-content:center;
    gap:6px; padding:7px 0; border-radius:10px; font-size:11.5px; font-weight:600;
    text-decoration:none; font-family:var(--sp-font); transition:all .2s; letter-spacing:.02em;
}
.sp-contact-btn:hover { opacity:.85; }
.sp-contact-email { background:var(--sp-mint-soft); border:1px solid rgba(136,221,202,0.3); color:var(--sp-navy-light); }
.sp-contact-phone { background:var(--sp-coral-soft); border:1px solid rgba(232,136,126,0.25); color:var(--sp-coral); }

/* ─── Input ─── */
.sp-input-bar { padding:10px 12px 12px; background:var(--sp-pure-white); border-top:1px solid var(--sp-border); flex-shrink:0; }
.sp-input-row { display:flex; gap:8px; align-items:center; }
.sp-input-field {
    flex:1; padding:10px 14px; border-radius:12px; background:var(--sp-bg);
    border:1px solid var(--sp-border); color:var(--sp-text); font-size:13px;
    font-family:var(--sp-font); transition:border .2s; outline:none;
}
.sp-input-field::placeholder { color:var(--sp-text-muted); }
.sp-input-field:focus { border-color:var(--sp-mint); }
.sp-input-field:-webkit-autofill,
.sp-input-field:-webkit-autofill:hover,
.sp-input-field:-webkit-autofill:focus {
    -webkit-box-shadow:0 0 0 50px var(--sp-bg) inset !important;
    -webkit-text-fill-color:var(--sp-text) !important;
    background-color:var(--sp-bg) !important;
}

.sp-send-btn {
    width:38px; height:38px; border-radius:12px; border:1px solid var(--sp-border);
    background:var(--sp-bg); color:var(--sp-text-muted); cursor:default;
    display:flex; align-items:center; justify-content:center; transition:all .2s; flex-shrink:0; padding:0;
}
.sp-send-btn.sp-active { background:var(--sp-navy); color:var(--sp-mint); border:none; cursor:pointer; }
.sp-send-btn.sp-active:hover { opacity:.9; }

.sp-footer { text-align:center; margin-top:8px; font-size:9.5px; color:var(--sp-text-muted); letter-spacing:.04em; font-family:var(--sp-font-brand); }

@media (max-width:480px) {
    #sp-chatbot-window { width:calc(100vw - 16px); height:calc(100vh - 80px); bottom:8px; right:8px; border-radius:14px; }
    #sp-chatbot-toggle { bottom:16px; right:16px; }
}
