.bot-toggle{position:fixed;bottom:10%;right:30px;background:#000;color:#fff;font-size:1.2em;border-radius:45px;box-shadow:0 0 10px rgba(0,0,0,.5);padding:10px 15px;cursor:pointer;z-index:9999;transition:all .3s ease-in-out}
.bot-toggle:hover{background:#fff;color:#000;box-shadow:0 0 15px rgba(0,0,0,.7);transform:scale(1.1)}

.bs-canvas-overlay {
    opacity: 0;
    visibility:hidden;
    z-index: 1100;
    top:0;
    transition: opacity .4s ease-out, visibility .4s ease-out;
}

body.chat-open .bs-canvas-overlay{opacity: 0.85;visibility: visible;}
body.chat-open .bs-canvas-right{margin-right:0;}

body.chat-open a.bot-toggle{transform:translateX(330px);}

.bs-canvas {
    top: 0;
    z-index: 1110;
    overflow: hidden;
    width: 330px;
    transition: margin .4s ease-out;
    -webkit-transition: margin .4s ease-out;
    -moz-transition: margin .4s ease-out;
    -ms-transition: margin .4s ease-out;
    display: flex;
    flex-direction: column;
}

.bs-canvas-left {
    left: 0;
    margin-left: -330px;
}

.bs-canvas-right {
    right: 0;
    margin-right: -330px;
}

.bs-canvas-header {
    flex-shrink: 0;
}

.bs-canvas-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    min-height: 0;
}

/* ── Chat messages ── */
.chat-messages {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 1rem 0.75rem;
    display: flex;
    flex-direction: column;
}

.chat-messages::-webkit-scrollbar {
    width: 4px;
}
.chat-messages::-webkit-scrollbar-thumb {
    background: #ced4da;
    border-radius: 4px;
}

/* ── Bubbles ── */
.chat-bubble {
    max-width: 80%;
    padding: 0.55rem 0.75rem;
    border-radius: 1rem;
    line-height: 1.4;
    word-break: break-word;
}

.chat-bubble-received {
    background: #fff;
    border: 1px solid #e9ecef;
    border-bottom-left-radius: 0.25rem;
    color: #212529;
}

.chat-bubble-sent {
    background: #007bff;
    color: #fff;
    border-bottom-right-radius: 0.25rem;
}

.chat-time {
    font-size: 0.9rem;
    opacity: 0.6;
    margin-top: 0.2rem;
    display: block;
}

.chat-bubble-sent .chat-time {
    color: #e0ecff;
}

/* ── Bot avatar ── */
.chat-bot-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #000000;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    flex-shrink: 0;
}

.chat-bot-avatar-header {
    width: 36px;
    height: 36px;
    font-size: 1.1rem;
}

/* ── Online indicator ── */
.chat-online-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #28e07e;
    margin-right: 3px;
    vertical-align: middle;
}

/* ── Input area ── */
.chat-input-area {
    flex-shrink: 0;
    padding: 0.65rem 0.75rem;
    border-top: 1px solid #dee2e6;
    background: #fff;
}

.chat-textarea {
    resize: none;
    max-height: 100px;
    border-right: none;
    overflow-y: auto;
}

.chat-textarea:focus {
    box-shadow: none;
    border-color: #80bdff;
}

.chat-send-btn {
    border-left: none;
    padding: 0 0.85rem;
}

.chat-send-btn:focus {
    box-shadow: none;
}

/* ── Wiggle animation ── */
.wiggle-element {
    display: inline-block;
    animation: wiggle 1s ease-in-out infinite;
}

@keyframes wiggle {
    0%, 100% { transform: rotate(-6deg); }
    50%       { transform: rotate(6deg); }
}
