.oa-widget{position:fixed;right:20px;bottom:20px;z-index:9999;font-family:inherit}
.oa-widget--left{left:20px;right:auto!important}
.oa-widget--snap{transition:left .2s ease, top .2s ease!important}
.oa-widget__btn{
    width:56px;height:56px;border-radius:50%;
    background:var(--colored_theme_bg-block,#0068ff);
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.2);
    border:none;position:relative;transition:transform .15s;
}
.oa-widget__btn:hover{transform:scale(1.05)}
.oa-widget__btn svg{stroke:#fff}
.oa-widget__badge{
    position:absolute;top:-4px;right:-4px;
    background:#e53935;color:#fff;font-size:11px;font-weight:700;
    min-width:18px;height:18px;border-radius:9px;
    display:flex;align-items:center;justify-content:center;padding:0 4px;
    box-shadow:0 0 0 2px #fff;
}
.oa-widget__window{
    display:flex;position:fixed;right:20px;bottom:20px;z-index:9999;
    width:380px;max-width:calc(100vw - 40px);height:560px;max-height:calc(100vh - 60px);
    background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.25);
    flex-direction:column;overflow:hidden;
    pointer-events:none;
    opacity:0;transform:translateY(16px);
    transition:opacity .2s ease, transform .2s ease;
}
.oa-widget--left .oa-widget__window{left:20px;right:auto!important}
.oa-widget--above-navbar .oa-widget__window{bottom:70px!important}
.oa-widget__window.oa-open{
    pointer-events:auto;
    opacity:1;transform:translateY(0);
}
.oa-widget__window.oa-dragging{transition:none!important}
.oa-widget__header{
    padding:14px 16px;background:#fff;color:#1d1d1f;
    display:flex;align-items:center;gap:10px;justify-content:flex-start;flex-shrink:0;
    border-bottom:0.5px solid #e5e5ea;
}
.oa-widget__ava{
    width:32px;height:32px;border-radius:50%;flex-shrink:0;
    background:#e6f1fb;display:flex;align-items:center;justify-content:center;
}
.oa-widget__ava svg{width:18px;height:18px;stroke:var(--colored_theme_bg-block,#0068ff)}
.oa-widget__title{font-size:15px;font-weight:600;flex:1}
.oa-widget__close{cursor:pointer;opacity:.6;font-size:24px;line-height:1;background:none;border:none;color:#8e8e93;padding:0 2px}
.oa-widget__body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#f7f8fa}
.oa-widget__loadmore{
    align-self:center;font-size:12px;color:#0068ff;cursor:pointer;padding:6px 12px;
    border:1px solid #dde3ea;border-radius:12px;background:#fff;
}
.oa-msg{max-width:80%!important;padding:9px 12px!important;border-radius:14px;font-size:13.5px;line-height:1.45;word-wrap:break-word;box-sizing:border-box!important;white-space:normal!important}
.oa-msg--owner{align-self:flex-end!important;background:var(--colored_theme_bg-block,#0068ff);color:#fff}
.oa-msg--assistant{align-self:flex-start!important;background:#f5f5f7;color:#1d1d1f;border:none}
.oa-msg a{color:#0068ff;text-decoration:underline;overflow-wrap:anywhere;word-break:normal}
.oa-msg--owner a{color:#fff}
.oa-msg--pending{opacity:.6}
.oa-msg--failed{background:#fbe1e1!important;color:#8a2727!important}
.oa-msg--failed a{color:#8a2727!important}
.oa-msg__failed-label{
    align-self:flex-end;display:flex;align-items:center;gap:6px;
    font-size:11px;color:#c62828;margin-top:-4px;
}
.oa-msg__retry-btn{
    background:none;border:1px solid #e3a9a9;border-radius:50%;
    width:22px;height:22px;display:flex;align-items:center;justify-content:center;
    cursor:pointer;padding:0;color:#c62828;flex-shrink:0;
}
.oa-msg__retry-btn:hover{background:#fdecea}
.oa-msg__retry-btn svg{width:13px;height:13px;stroke:currentColor}
.oa-msg--error{align-self:center;background:#fdecea;color:#c62828;border:1px solid #f5c6c2;font-size:12.5px;max-width:90%;text-align:center}
.oa-msg--typing{padding:12px 14px}
.oa-typing-dots{display:inline-flex;gap:4px;align-items:center}
.oa-typing-dots span{
    width:6px;height:6px;border-radius:50%;background:#999;
    animation:oaTypingBounce 1.2s infinite ease-in-out;
}
.oa-typing-dots span:nth-child(2){animation-delay:0.2s}
.oa-typing-dots span:nth-child(3){animation-delay:0.4s}
@keyframes oaTypingBounce{
    0%, 60%, 100%{transform:translateY(0);opacity:.5}
    30%{transform:translateY(-4px);opacity:1}
}
.oa-widget__footer{
    padding:10px;border-top:1px solid #eee;display:flex;align-items:flex-end;gap:8px;flex-shrink:0;background:#fff;
}
.oa-widget__input{
    flex:1;border:1px solid #dde3ea;border-radius:19px;padding:8px 14px!important;
    font-size:13.5px!important;line-height:20px!important;resize:none;
    height:38px;min-height:38px;max-height:96px!important;
    outline:none;font-family:inherit;box-sizing:border-box!important;overflow-y:auto;
    margin:0!important;display:block;
}
.oa-widget__input:disabled{background:#f2f2f2;color:#999}
.oa-widget__send{
    width:38px;height:38px;border-radius:50%;border:none;flex-shrink:0;
    background:var(--colored_theme_bg-block,#0068ff);display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.oa-widget__send:disabled{opacity:.5;cursor:default}
.oa-widget__send svg{stroke:#fff}
.oa-widget__typing{align-self:flex-start;font-size:12px;color:#999;padding:0 4px}
.oa-widget__backdrop{
    position:fixed;inset:0;background:rgba(20,20,22,.55);z-index:9998;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .2s ease;
}
.oa-widget__backdrop.oa-open{opacity:1;visibility:visible;pointer-events:auto}

@media(max-width:480px){
    .oa-widget__window{
        top:auto!important;left:0!important;right:0!important;bottom:0!important;
        width:100vw!important;height:88vh!important;max-width:100vw!important;max-height:88vh!important;
        border-radius:20px 20px 0 0!important;
        transform:translateY(100%);
    }
    .oa-widget__window.oa-open{transform:translateY(0)}
    @supports (height: 100dvh) {
        .oa-widget__window{
            height:88dvh!important;max-height:88dvh!important;
        }
    }
    .oa-widget{right:14px;bottom:14px}
    .oa-widget--left{left:14px;right:auto!important}
    .oa-widget--above-navbar{bottom:70px!important}
    .oa-widget:has(.oa-widget__window.oa-open) .oa-widget__btn{display:none}
    .oa-widget__window::before{
        content:'';position:absolute;top:8px;left:50%;
        transform:translateX(-50%);
        width:36px;height:5px;border-radius:3px;
        background:#d1d1d6;
    }
    .oa-widget__header{padding-top:20px;touch-action:none}
}
