.q-assist-fab[hidden],
.q-assist-greet[hidden],
.q-assist-scrim[hidden],
.q-assist-panel[hidden] {
    display: none !important;
}

.q-assist-fab {
    position: fixed;
    right: max(18px, env(safe-area-inset-right));
    bottom: max(18px, env(safe-area-inset-bottom));
    z-index: 80;
    width: 58px;
    height: 58px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    cursor: pointer;
}

.q-assist-fab__aura,
.q-assist-fab__ring {
    position: absolute;
    inset: -7px;
    border-radius: 50%;
    pointer-events: none;
}

.q-assist-fab__aura {
    background: radial-gradient(circle, rgba(22, 119, 255, 0.42) 0%, rgba(22, 119, 255, 0) 72%);
    animation: q-assist-aura 2.2s ease-in-out infinite;
}

.q-assist-fab__ring {
    inset: -3px;
    border: 2px solid rgba(22, 119, 255, 0.45);
    animation: q-assist-ring 2.2s ease-out infinite;
}

.q-assist-fab__orb {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 32% 24%, #ffffff 0%, transparent 55%),
        linear-gradient(160deg, #eef5ff 0%, #d6e7ff 100%);
    box-shadow:
        0 10px 24px rgba(22, 119, 255, 0.38),
        0 0 0 2px rgba(22, 119, 255, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.35);
    animation: q-assist-float 3.2s ease-in-out infinite;
}

.q-assist-fab__orb {
    overflow: hidden;
}

.q-assist-fab__orb svg {
    width: 58px;
    height: 58px;
    margin-top: 6px;
}

.q-assist-fab:hover .q-assist-fab__orb {
    transform: translateY(-1px) scale(1.04);
    filter: brightness(1.06);
}

.q-assist.is-open .q-assist-fab {
    display: none;
}

@keyframes q-assist-aura {
    0%, 100% { opacity: .55; transform: scale(.92); }
    50% { opacity: 1; transform: scale(1.08); }
}

@keyframes q-assist-ring {
    0% { opacity: .5; transform: scale(.88); }
    80%, 100% { opacity: 0; transform: scale(1.28); }
}

@keyframes q-assist-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

.q-assist-scrim {
    position: fixed;
    inset: 0;
    z-index: 81;
    background: rgba(15, 23, 42, 0.18);
}

.q-assist-panel {
    display: flex;
    flex-direction: column;
    background: var(--surface, #fff);
    color: var(--text, #111);
    border: 1px solid var(--border, #e6edf4);
}

.q-assist:not(.is-page) .q-assist-panel {
    position: fixed;
    z-index: 82;
    right: max(16px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));
    width: min(390px, calc(100vw - 24px));
    height: min(560px, calc(100vh - 36px));
    border-radius: 24px;
    box-shadow: 0 22px 56px rgba(15, 23, 42, 0.18);
    overflow: hidden;
    animation: q-assist-in .22s ease-out;
}

@keyframes q-assist-in {
    from { opacity: 0; transform: translateY(10px) scale(.98); }
    to { opacity: 1; transform: none; }
}

.q-assist.is-page .q-assist-panel {
    min-height: 560px;
    height: calc(100vh - 220px);
    border-radius: 18px;
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.06);
}

.q-assist-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 14px 12px;
    background:
        linear-gradient(180deg, rgba(22, 119, 255, 0.1), transparent 90%),
        var(--surface, #fff);
    border-bottom: 1px solid var(--border, #e6edf4);
}

.q-assist-head__mark {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: linear-gradient(160deg, #eef5ff, #d6e7ff);
    box-shadow: 0 6px 14px rgba(22, 119, 255, 0.2);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

.q-assist-head__mark {
    overflow: hidden;
    border-radius: 50%;
}

.q-assist-head__mark svg {
    width: 38px;
    height: 38px;
    margin-top: 5px;
}

.q-assist-head__text {
    min-width: 0;
    flex: 1;
}

.q-assist-head__title {
    font-weight: 700;
    letter-spacing: -0.03em;
}

.q-assist-head__sub {
    font-size: 12px;
    color: var(--text-muted, rgba(0, 0, 0, 0.45));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.q-assist-iconbtn {
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: inherit;
    font-size: 20px;
    line-height: 32px;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    flex: 0 0 auto;
}

.q-assist-stream {
    flex: 1;
    overflow: auto;
    padding: 16px 14px 10px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--crm-canvas, #f4f7fb);
}

.q-assist-msg {
    max-width: 92%;
    padding: 10px 12px;
    border-radius: 16px;
    font-size: 14.5px;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
}

.q-assist-msg.is-user {
    align-self: flex-end;
    background: var(--primary, #1677ff);
    color: #fff;
    border-bottom-right-radius: 6px;
}

.q-assist-msg.is-bot {
    align-self: flex-start;
    background: #fff;
    border: 1px solid var(--border, #e6edf4);
    border-bottom-left-radius: 6px;
}

.q-assist-welcome {
    align-self: stretch;
    padding: 2px 2px 6px;
}

.q-assist-welcome__kicker {
    margin: 0 0 4px;
    font-size: 12px;
    font-weight: 650;
    letter-spacing: .01em;
    color: var(--primary, #1677ff);
}

.q-assist-welcome h3 {
    margin: 0 0 6px;
    font-size: 20px;
    letter-spacing: -0.03em;
}

.q-assist-welcome p {
    margin: 0 0 12px;
    color: var(--text-muted, rgba(0, 0, 0, 0.55));
    font-size: 14px;
    line-height: 1.45;
}

.q-assist-can {
    margin: 0 0 12px;
    padding: 8px 12px 8px 28px;
    background: #fff;
    border: 1px solid var(--border, #e6edf4);
    border-radius: 14px;
    color: var(--text, #111);
    font-size: 13.5px;
    line-height: 1.4;
}

.q-assist-can li + li {
    margin-top: 3px;
}

.q-assist-welcome__hint {
    margin: 0 0 8px !important;
    font-size: 12px !important;
    font-weight: 650;
    color: var(--text, #111) !important;
}

.q-assist-welcome__mic {
    margin: 10px 0 0 !important;
    font-size: 12px !important;
}

.q-assist-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.q-assist-chip {
    border: 1px solid var(--border, #dbe4ee);
    background: #fff;
    color: inherit;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 13px;
    cursor: pointer;
}

.q-assist-chip:hover {
    border-color: #9dc4ff;
    background: #f4f8ff;
}

.q-assist-card {
    align-self: flex-start;
    width: min(280px, 100%);
    background: #fff;
    border: 1px solid var(--border, #e6edf4);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05);
}

.q-assist-card img {
    display: block;
    width: 100%;
    background: #fff;
}

.q-assist-card__body {
    padding: 10px 12px 12px;
}

.q-assist-card__title {
    font-weight: 650;
    font-size: 14px;
}

.q-assist-card__sub {
    color: var(--text-muted, rgba(0, 0, 0, 0.45));
    font-size: 12px;
    margin-top: 2px;
}

.q-assist-card a {
    display: inline-block;
    margin-top: 8px;
    color: var(--primary, #1677ff);
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
}

.q-assist-pending {
    align-self: flex-start;
    width: min(320px, 100%);
    padding: 12px;
    border-radius: 16px;
    background: #fff8e8;
    border: 1px solid #f0d48a;
}

.q-assist-pending strong {
    display: block;
    margin-bottom: 4px;
}

.q-assist-pending p {
    margin: 0 0 10px;
    font-size: 14px;
}

.q-assist-pending__actions {
    display: flex;
    gap: 8px;
}

.q-assist-pending__actions button {
    border: 0;
    border-radius: 10px;
    padding: 8px 14px;
    font-weight: 650;
    cursor: pointer;
}

.q-assist-pending__actions .is-yes {
    background: var(--primary, #1677ff);
    color: #fff;
}

.q-assist-pending__actions .is-no {
    background: #fff;
    border: 1px solid #ead9a4;
}

.q-assist-typing {
    align-self: flex-start;
    display: flex;
    gap: 5px;
    padding: 12px 14px;
    background: #fff;
    border-radius: 14px;
    border: 1px solid var(--border, #e6edf4);
}

.q-assist-typing i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #8aa0b8;
    animation: q-assist-dot 1s infinite;
}

.q-assist-typing i:nth-child(2) { animation-delay: .15s; }
.q-assist-typing i:nth-child(3) { animation-delay: .3s; }

@keyframes q-assist-dot {
    0%, 80%, 100% { opacity: .25; transform: translateY(0); }
    40% { opacity: 1; transform: translateY(-3px); }
}

.q-assist-handle {
    display: none;
}

.q-assist-composer {
    padding: 10px 12px 12px;
    border-top: 1px solid var(--border, #e6edf4);
    background: var(--surface, #fff);
}

.q-assist-bar {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    padding: 5px 5px 5px 14px;
    border-radius: 22px;
    background: #f3f6fb;
    border: 1px solid #e2eaf3;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.q-assist-bar:focus-within {
    background: #fff;
    border-color: #8bb8ff;
    box-shadow: 0 0 0 4px rgba(22, 119, 255, 0.12);
}

.q-assist-composer textarea {
    flex: 1;
    resize: none;
    max-height: 120px;
    min-height: 40px;
    padding: 9px 6px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    outline: none;
    font: 16px/1.4 Inter, system-ui, sans-serif;
}

.q-assist-composer textarea::placeholder {
    color: rgba(15, 23, 42, 0.38);
}

.q-assist-mic,
.q-assist-send {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    cursor: pointer;
    flex: 0 0 auto;
}

.q-assist-mic {
    background: transparent;
    color: var(--primary, #1677ff);
}

.q-assist-mic:hover {
    background: #e8f2ff;
}

.q-assist-mic.is-on {
    background: #ffe4e4;
    color: #d4380d;
    animation: q-assist-pulse 1.1s infinite;
}

.q-assist-send {
    background: var(--primary, #1677ff);
    color: #fff;
    box-shadow: 0 6px 14px rgba(22, 119, 255, 0.28);
}

.q-assist-mic svg,
.q-assist-send svg {
    width: 20px;
    height: 20px;
}

@keyframes q-assist-pulse {
    50% { box-shadow: 0 0 0 6px rgba(212, 56, 13, 0.12); }
}

.q-assist-err {
    color: #a8071a;
    font-size: 13px;
    padding: 0 4px;
}

.q-assist-page {
    max-width: 820px;
}

.q-assist-settings {
    margin-bottom: 20px;
}

.q-assist-settings__ok {
    color: #237804;
    font-weight: 600;
    margin: 0 0 12px;
}

html[data-theme="dark"] .q-assist-stream {
    background: #101722;
}

html[data-theme="dark"] .q-assist-msg.is-bot,
html[data-theme="dark"] .q-assist-card,
html[data-theme="dark"] .q-assist-chip,
html[data-theme="dark"] .q-assist-can,
html[data-theme="dark"] .q-assist-typing {
    background: #171e2b;
    border-color: #2a3344;
}

html[data-theme="dark"] .q-assist-pending {
    background: #2a2212;
    border-color: #6b5420;
}

html[data-theme="dark"] .q-assist-scrim {
    background: rgba(0, 0, 0, 0.45);
}

html[data-theme="dark"] .q-assist-bar {
    background: #141b27;
    border-color: #2a3344;
    box-shadow: none;
}

html[data-theme="dark"] .q-assist-bar:focus-within {
    background: #171e2b;
    border-color: #3b82f6;
}

html.q-assist-lock,
html.q-assist-lock body {
    overflow: hidden;
}

@media (max-width: 720px) {
    .q-assist-fab {
        right: max(14px, env(safe-area-inset-right));
        bottom: max(14px, env(safe-area-inset-bottom));
    }

    .q-assist-fab__orb {
        width: 54px;
        height: 54px;
    }

    .q-assist-scrim {
        background: rgba(15, 23, 42, 0.42);
    }

    .q-assist:not(.is-page) .q-assist-panel {
        top: auto;
        right: 0;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 100dvh;
        max-height: 100dvh;
        border: 0;
        border-radius: 22px 22px 0 0;
        box-shadow: 0 -16px 48px rgba(15, 23, 42, 0.22);
        padding-top: env(safe-area-inset-top);
    }

    .q-assist-handle {
        display: block;
        width: 36px;
        height: 4px;
        margin: 8px auto 0;
        border-radius: 999px;
        background: #d5deea;
        flex: 0 0 auto;
    }

    .q-assist-head {
        padding: 10px 10px 10px 14px;
    }

    .q-assist-expand {
        display: none;
    }

    .q-assist-iconbtn {
        width: 44px;
        height: 44px;
        line-height: 44px;
        font-size: 24px;
    }

    .q-assist-stream {
        padding: 12px 14px 8px;
    }

    .q-assist-welcome h3 {
        font-size: 22px;
    }

    .q-assist-chips {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 2px;
        margin: 0 -4px;
    }

    .q-assist-chip {
        flex: 0 0 auto;
        min-height: 36px;
        padding: 8px 14px;
    }

    .q-assist-composer {
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    }

    .q-assist-bar {
        padding: 4px 4px 4px 14px;
        border-radius: 24px;
    }

    .q-assist-mic,
    .q-assist-send {
        width: 44px;
        height: 44px;
    }

    .q-assist.is-page .q-assist-panel {
        min-height: 70vh;
        height: calc(100dvh - 120px);
        border-radius: 18px;
    }
}

.q-bot {
    overflow: visible;
}

.q-bot__eyes {
    transform-box: fill-box;
    transform-origin: center;
    animation: q-bot-blink 5.2s infinite;
}

.q-bot__head {
    transform-box: view-box;
    transform-origin: 32px 42px;
    animation: q-bot-tilt 7s ease-in-out infinite;
}

.q-bot__body {
    transform-box: view-box;
    transform-origin: 32px 64px;
    animation: q-bot-breathe 4s ease-in-out infinite;
}

.q-bot__antenna {
    animation: q-bot-glow 1.8s ease-in-out infinite;
}

.q-bot__arm {
    transform-box: view-box;
    transform-origin: 48px 57px;
    transform: rotate(70deg);
    opacity: 0;
}

.q-assist-greet.is-in .q-bot__arm {
    animation: q-bot-arm-up .5s cubic-bezier(.3, 1.5, .5, 1) .45s forwards,
        q-bot-wave 1.2s ease-in-out .95s 3;
}

.q-bot__hand {
    transform-box: fill-box;
    transform-origin: 50% 100%;
}

.q-assist-greet.is-in .q-bot__hand {
    animation: q-bot-hand .4s ease-in-out .95s 9 alternate;
}

.q-assist-greet.is-in .q-bot__head {
    animation: q-bot-hello 1.1s ease-in-out .3s 1, q-bot-tilt 7s ease-in-out 1.4s infinite;
}

.q-bot__smile {
    transform-box: fill-box;
    transform-origin: 50% 0;
}

.q-assist.is-recording .q-assist-head__mark .q-bot__smile,
.q-assist-greet.is-typing .q-bot__smile {
    animation: q-bot-talk .22s ease-in-out infinite alternate;
}

@keyframes q-bot-blink {
    0%, 44%, 48%, 90%, 94%, 97%, 100% { transform: scaleY(1); }
    46%, 92%, 95.5% { transform: scaleY(0.08); }
}

@keyframes q-bot-tilt {
    0%, 100% { transform: rotate(0deg) translateY(0); }
    25% { transform: rotate(-3deg) translateY(-0.4px); }
    55% { transform: rotate(2.5deg) translateY(0); }
    75% { transform: rotate(0deg) translateY(-0.6px); }
}

@keyframes q-bot-breathe {
    0%, 100% { transform: scale(1, 1); }
    50% { transform: scale(1.015, 1.03); }
}

@keyframes q-bot-hello {
    0%, 100% { transform: rotate(0); }
    35% { transform: rotate(-7deg) translateY(1px); }
    65% { transform: rotate(3deg); }
}

@keyframes q-bot-arm-up {
    from { transform: rotate(70deg); opacity: 0; }
    to { transform: rotate(0deg); opacity: 1; }
}

@keyframes q-bot-wave {
    0%, 100% { transform: rotate(0deg); opacity: 1; }
    30% { transform: rotate(-16deg); opacity: 1; }
    65% { transform: rotate(10deg); opacity: 1; }
}

@keyframes q-bot-hand {
    from { transform: rotate(-10deg); }
    to { transform: rotate(14deg); }
}

@keyframes q-bot-glow {
    50% { fill: #b4fff0; filter: drop-shadow(0 0 2px #5ff2d3); }
}

@keyframes q-bot-talk {
    from { transform: scaleY(0.55); }
    to { transform: scaleY(1.5); }
}

.q-assist-greet {
    position: fixed;
    z-index: 79;
    right: max(18px, env(safe-area-inset-right));
    bottom: calc(max(18px, env(safe-area-inset-bottom)) + 70px);
    width: min(380px, calc(100vw - 28px));
    display: flex;
    align-items: flex-end;
    gap: 6px;
    pointer-events: none;
    opacity: 0;
    transform: translateY(24px) scale(.9);
    transform-origin: 100% 100%;
}

.q-assist-greet.is-in {
    pointer-events: auto;
    animation: q-greet-in .7s cubic-bezier(.2, 1.4, .4, 1) forwards;
}

.q-assist-greet.is-out {
    animation: q-greet-out .4s ease-in forwards;
}

.q-assist.is-open .q-assist-greet {
    display: none;
}

@keyframes q-greet-in {
    0% { opacity: 0; transform: translateY(40px) scale(.6); }
    100% { opacity: 1; transform: none; }
}

@keyframes q-greet-out {
    to { opacity: 0; transform: translate(20px, 30px) scale(.7); }
}

.q-assist-greet__bot {
    position: relative;
    order: 2;
    flex: 0 0 auto;
    width: 84px;
    height: 84px;
    margin-right: -6px;
    border-radius: 50%;
    overflow: hidden;
    background: radial-gradient(circle at 50% 35%, #ffffff 0%, #dcebff 70%);
    border: 3px solid #fff;
    box-shadow: 0 12px 28px rgba(22, 86, 217, 0.3), 0 0 0 2px rgba(22, 119, 255, 0.25);
    animation: q-greet-hop 5s ease-in-out 3s infinite;
}

.q-assist-greet__bot svg {
    position: relative;
    width: 100%;
    height: 100%;
    margin-top: 8px;
}

.q-assist-greet__glow {
    position: absolute;
    inset: 6px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(95, 242, 211, 0.45), transparent 70%);
    animation: q-assist-aura 2.2s ease-in-out infinite;
}

@keyframes q-greet-hop {
    0%, 84%, 100% { transform: translateY(0); }
    90% { transform: translateY(-5px); }
    95% { transform: translateY(0) scale(1.02, .98); }
}

.q-assist-greet__bubble {
    position: relative;
    order: 1;
    flex: 1;
    min-width: 0;
    padding: 14px 16px 12px;
    border-radius: 20px 20px 6px 20px;
    background: #fff;
    color: #0f172a;
    border: 1px solid #dbe7f7;
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.18);
    font-size: 14px;
    line-height: 1.45;
}

.q-assist-greet__bubble strong {
    display: block;
    font-size: 15px;
    margin-bottom: 4px;
}

.q-assist-greet__bubble [data-assist-greet-hello] {
    background: linear-gradient(90deg, #1677ff, #13c2a3);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.q-assist-greet__bubble p {
    margin: 0 0 10px;
    min-height: 3.9em;
    color: #334155;
}

.q-assist-greet__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.q-assist-greet__actions button {
    min-height: 34px;
    padding: 6px 14px;
    border: 0;
    border-radius: 999px;
    background: var(--primary, #1677ff);
    color: #fff;
    font: 600 13px/1 Inter, system-ui, sans-serif;
    cursor: pointer;
}

.q-assist-greet__actions button.is-ghost {
    background: #eef5ff;
    color: var(--primary, #1677ff);
}

.q-assist-greet__close {
    position: absolute;
    top: -10px;
    left: -6px;
    z-index: 2;
    width: 26px;
    height: 26px;
    border: 1px solid #dbe7f7;
    border-radius: 50%;
    background: #fff;
    color: #64748b;
    font-size: 16px;
    line-height: 22px;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.12);
}

.q-assist-bar {
    position: relative;
}

.q-buddy[hidden],
.q-buddy__say[hidden] {
    display: none !important;
}

.q-buddy {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 78;
    width: 84px;
    height: 132px;
    cursor: grab;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    transition: opacity .3s ease;
    will-change: transform;
}

.q-buddy.is-dragged {
    cursor: grabbing;
    z-index: 90;
}

.q-buddy.is-away {
    opacity: 0;
    pointer-events: none;
}

.q-buddy__svg {
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 6px 8px rgba(15, 23, 42, 0.18));
    transform-origin: 50% 100%;
    transition: transform .25s ease;
}

.q-buddy__svg * {
    transform-box: view-box;
}

.q-buddy__head { transform-origin: 32px 42px; animation: q-bot-tilt 7s ease-in-out infinite; }
.q-buddy__torso { transform-origin: 32px 72px; animation: q-bot-breathe 4s ease-in-out infinite; }
.q-buddy__leg--l { transform-origin: 27px 71px; }
.q-buddy__leg--r { transform-origin: 37px 71px; }
.q-buddy__arm--l { transform-origin: 19.5px 49.5px; }
.q-buddy__arm--r { transform-origin: 44.5px 49.5px; }
.q-buddy__look { transition: transform .12s linear; }
.q-buddy__eyes { transform-box: fill-box; transform-origin: center; animation: q-bot-blink 5.2s infinite; }
.q-buddy__mouth { transform-box: fill-box; transform-origin: 50% 0; }
.q-buddy__closed { opacity: 0; }

.q-buddy.is-walking .q-buddy__svg { animation: q-buddy-bob .44s ease-in-out infinite; }
.q-buddy.is-walking .q-buddy__leg--l { animation: q-buddy-step .44s ease-in-out infinite; }
.q-buddy.is-walking .q-buddy__leg--r { animation: q-buddy-step .44s ease-in-out -.22s infinite; }
.q-buddy.is-walking .q-buddy__arm--l { animation: q-buddy-swing .44s ease-in-out -.22s infinite; }
.q-buddy.is-walking .q-buddy__arm--r { animation: q-buddy-swing .44s ease-in-out infinite; }
.q-buddy.is-walking .q-buddy__svg { transform: rotate(4deg); }
.q-buddy.is-walking.is-left .q-buddy__svg { transform: rotate(-4deg); }

.q-buddy.is-jumping .q-buddy__leg--l { transform: rotate(14deg) scaleY(.82); }
.q-buddy.is-jumping .q-buddy__leg--r { transform: rotate(-14deg) scaleY(.82); }
.q-buddy.is-jumping .q-buddy__arm--l { transform: rotate(50deg); }
.q-buddy.is-jumping .q-buddy__arm--r { transform: rotate(-50deg); }
.q-buddy.is-landing .q-buddy__svg { animation: q-buddy-land .26s ease-out; }

.q-buddy.is-sitting .q-buddy__leg { transform: scaleY(.52); }
.q-buddy.is-sitting .q-buddy__leg--l { animation: q-buddy-dangle 2.4s ease-in-out infinite; }
.q-buddy.is-sitting .q-buddy__leg--r { animation: q-buddy-dangle 2.4s ease-in-out -1.2s infinite; }
.q-buddy.is-sitting .q-buddy__shadow { opacity: 0; }
.q-buddy.is-sitting .q-buddy__arm--l { transform: rotate(-12deg); }
.q-buddy.is-sitting .q-buddy__arm--r { transform: rotate(12deg); }

.q-buddy.is-waving .q-buddy__arm--r { animation: q-buddy-wave .45s ease-in-out 4 alternate; }
.q-buddy.is-looking .q-buddy__head { animation: q-buddy-look 2.4s ease-in-out; }
.q-buddy.is-nodding .q-buddy__head { animation: q-buddy-nod .45s ease-in-out; }
.q-buddy.is-talking .q-buddy__mouth { animation: q-bot-talk .2s ease-in-out infinite alternate; }
.q-buddy.is-startled .q-buddy__svg { animation: q-buddy-startle .5s ease-out; }

.q-buddy.is-dragged .q-buddy__svg { transform: rotate(-6deg); animation: q-buddy-dangle-body 1s ease-in-out infinite; }
.q-buddy.is-dragged .q-buddy__arm--l { transform: rotate(150deg); }
.q-buddy.is-dragged .q-buddy__arm--r { transform: rotate(-150deg); }
.q-buddy.is-dragged .q-buddy__leg--l { animation: q-buddy-dangle .5s ease-in-out infinite; }
.q-buddy.is-dragged .q-buddy__leg--r { animation: q-buddy-dangle .5s ease-in-out -.25s infinite; }
.q-buddy.is-dragged .q-buddy__shadow { opacity: 0; }

.q-buddy.is-sleeping .q-buddy__eyes { opacity: 0; animation: none; }
.q-buddy.is-sleeping .q-buddy__closed { opacity: 1; }
.q-buddy.is-sleeping .q-buddy__head { animation: q-buddy-doze 3.2s ease-in-out infinite; }
.q-buddy.is-sleeping .q-buddy__mouth { transform: scale(.5, .4); }

.q-buddy__zzz {
    position: absolute;
    top: -4px;
    right: -10px;
    display: none;
    font: 700 13px/1 Inter, system-ui, sans-serif;
    color: #6b8fd6;
}

.q-buddy__zzz i,
.q-buddy__zzz b {
    font-style: normal;
    display: inline-block;
}

.q-buddy.is-sleeping .q-buddy__zzz {
    display: block;
    animation: q-buddy-zzz 2.4s ease-in-out infinite;
}

.q-buddy__zzz i { font-size: 11px; transform: translateY(-6px); }
.q-buddy__zzz b { font-size: 9px; transform: translateY(-12px); }

.q-buddy__hide {
    position: absolute;
    top: 4px;
    right: 0;
    z-index: 2;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 1px solid #dbe7f7;
    border-radius: 50%;
    background: #fff;
    color: #64748b;
    font-size: 13px;
    line-height: 17px;
    cursor: pointer;
    opacity: 0;
    transition: opacity .2s;
}

.q-buddy:hover .q-buddy__hide {
    opacity: 1;
}

.q-buddy.is-dragged .q-buddy__hide {
    opacity: 0;
}

.q-buddy__say {
    position: absolute;
    bottom: calc(100% - 6px);
    left: 40px;
    width: max-content;
    max-width: 270px;
    padding: 10px 12px;
    border-radius: 16px 16px 16px 4px;
    background: #fff;
    color: #0f172a;
    border: 1px solid #dbe7f7;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.16);
    font: 500 13px/1.4 Inter, system-ui, sans-serif;
    cursor: default;
    animation: q-buddy-say .3s cubic-bezier(.2, 1.4, .4, 1);
}

.q-buddy__say.is-flip {
    left: auto;
    right: 40px;
    border-radius: 16px 16px 4px 16px;
}

.q-buddy__say span {
    display: block;
}

.q-buddy__say button {
    margin-top: 8px;
    min-height: 30px;
    padding: 5px 12px;
    border: 0;
    border-radius: 999px;
    background: var(--primary, #1677ff);
    color: #fff;
    font: 600 12px/1 Inter, system-ui, sans-serif;
    cursor: pointer;
}

.q-buddy__cup,
.q-buddy__phone {
    opacity: 0;
    transition: opacity .25s;
}

.q-buddy__cup { transform-origin: 48.6px 67.6px; }
.q-buddy__phone { transform-origin: 15.4px 67.6px; }

.q-buddy.is-tea .q-buddy__cup { opacity: 1; animation: q-buddy-cup 3s ease-in-out infinite; }
.q-buddy.is-tea .q-buddy__arm--r { animation: q-buddy-sip 3s ease-in-out infinite; }
.q-buddy.is-tea .q-buddy__steam { animation: q-buddy-steam 1.6s ease-in-out infinite; }
.q-buddy.is-tea .q-buddy__eyes { animation: q-buddy-sip-eyes 3s ease-in-out infinite; }

.q-buddy.is-phone .q-buddy__phone { opacity: 1; transform: rotate(50deg); }
.q-buddy.is-phone .q-buddy__arm--l { transform: rotate(-50deg); }
.q-buddy.is-phone .q-buddy__head { animation: q-buddy-phone-head 3.4s ease-in-out infinite; }
.q-buddy.is-phone .q-buddy__look { transform: translate(-0.8px, 1px) !important; }
.q-buddy.is-phone .q-buddy__arm--r { animation: q-buddy-tap .5s ease-in-out infinite alternate; }

.q-buddy.is-stretch .q-buddy__arm--l { animation: q-buddy-stretch-l 2.6s ease-in-out; }
.q-buddy.is-stretch .q-buddy__arm--r { animation: q-buddy-stretch-r 2.6s ease-in-out; }
.q-buddy.is-stretch .q-buddy__torso { animation: q-buddy-stretch-body 2.6s ease-in-out; }
.q-buddy.is-stretch .q-buddy__mouth { animation: q-buddy-yawn 2.6s ease-in-out; }
.q-buddy.is-stretch .q-buddy__eyes { animation: q-buddy-squint 2.6s ease-in-out; }

.q-buddy.is-pushups .q-buddy__svg { animation: q-buddy-pushup .9s ease-in-out infinite; transform-origin: 50% 97%; }
.q-buddy.is-pushups .q-buddy__arm--l,
.q-buddy.is-pushups .q-buddy__arm--r { animation: q-buddy-push-arms .9s ease-in-out infinite; }
.q-buddy.is-pushups .q-buddy__shadow { opacity: 0; }

.q-buddy.is-squats .q-buddy__svg { animation: q-buddy-squat 1.1s ease-in-out infinite; }
.q-buddy.is-squats .q-buddy__leg { animation: q-buddy-squat-legs 1.1s ease-in-out infinite; }
.q-buddy.is-squats .q-buddy__arm--l { animation: q-buddy-squat-arm-l 1.1s ease-in-out infinite; }
.q-buddy.is-squats .q-buddy__arm--r { animation: q-buddy-squat-arm-r 1.1s ease-in-out infinite; }

.q-buddy.is-jacks .q-buddy__svg { animation: q-buddy-jack-bob .6s ease-in-out infinite; }
.q-buddy.is-jacks .q-buddy__arm--l { animation: q-buddy-jack-l .6s ease-in-out infinite; }
.q-buddy.is-jacks .q-buddy__arm--r { animation: q-buddy-jack-r .6s ease-in-out infinite; }
.q-buddy.is-jacks .q-buddy__leg--l { animation: q-buddy-jack-leg-l .6s ease-in-out infinite; }
.q-buddy.is-jacks .q-buddy__leg--r { animation: q-buddy-jack-leg-r .6s ease-in-out infinite; }

.q-buddy.is-dance .q-buddy__svg { animation: q-buddy-dance .8s ease-in-out infinite; }
.q-buddy.is-dance .q-buddy__arm--l { animation: q-buddy-dance-l .8s ease-in-out infinite; }
.q-buddy.is-dance .q-buddy__arm--r { animation: q-buddy-dance-r .8s ease-in-out infinite; }
.q-buddy.is-dance .q-buddy__head { animation: q-buddy-look 1.6s ease-in-out infinite; }

@keyframes q-buddy-sip {
    0%, 15%, 85%, 100% { transform: rotate(105deg); }
    35%, 65% { transform: rotate(148deg); }
}

@keyframes q-buddy-cup {
    0%, 15%, 85%, 100% { transform: rotate(-105deg); }
    35%, 65% { transform: rotate(-128deg); }
}

@keyframes q-buddy-steam {
    0% { opacity: 0; transform: translateY(1px); }
    50% { opacity: .9; }
    100% { opacity: 0; transform: translateY(-3px); }
}

@keyframes q-buddy-sip-eyes {
    0%, 30%, 70%, 100% { transform: scaleY(1); }
    40%, 60% { transform: scaleY(.15); }
}

@keyframes q-buddy-phone-head {
    0%, 100% { transform: rotate(-6deg) translateY(1px); }
    50% { transform: rotate(-3deg) translateY(1.4px); }
}

@keyframes q-buddy-tap {
    from { transform: rotate(38deg); }
    to { transform: rotate(46deg); }
}

@keyframes q-buddy-stretch-l {
    0%, 100% { transform: rotate(0); }
    30%, 75% { transform: rotate(165deg); }
}

@keyframes q-buddy-stretch-r {
    0%, 100% { transform: rotate(0); }
    30%, 75% { transform: rotate(-165deg); }
}

@keyframes q-buddy-stretch-body {
    0%, 100% { transform: scale(1, 1); }
    30%, 75% { transform: scale(.98, 1.05); }
}

@keyframes q-buddy-yawn {
    0%, 20%, 85%, 100% { transform: scale(1); }
    40%, 70% { transform: scale(.8, 2.4); }
}

@keyframes q-buddy-squint {
    0%, 25%, 80%, 100% { transform: scaleY(1); }
    35%, 70% { transform: scaleY(.15); }
}

@keyframes q-buddy-pushup {
    0%, 100% { transform: rotate(78deg) translateY(0); }
    50% { transform: rotate(70deg) translateY(-2px); }
}

@keyframes q-buddy-push-arms {
    0%, 100% { transform: scaleY(.75); }
    50% { transform: scaleY(1); }
}

@keyframes q-buddy-squat {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 12px; }
}

@keyframes q-buddy-squat-legs {
    0%, 100% { transform: scaleY(1); }
    50% { transform: scaleY(.55); }
}

@keyframes q-buddy-squat-arm-l {
    0%, 100% { transform: rotate(0); }
    50% { transform: rotate(-80deg); }
}

@keyframes q-buddy-squat-arm-r {
    0%, 100% { transform: rotate(0); }
    50% { transform: rotate(80deg); }
}

@keyframes q-buddy-jack-bob {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 -8px; }
}

@keyframes q-buddy-jack-l {
    0%, 100% { transform: rotate(0); }
    50% { transform: rotate(160deg); }
}

@keyframes q-buddy-jack-r {
    0%, 100% { transform: rotate(0); }
    50% { transform: rotate(-160deg); }
}

@keyframes q-buddy-jack-leg-l {
    0%, 100% { transform: rotate(0); }
    50% { transform: rotate(16deg); }
}

@keyframes q-buddy-jack-leg-r {
    0%, 100% { transform: rotate(0); }
    50% { transform: rotate(-16deg); }
}

@keyframes q-buddy-dance {
    0%, 100% { transform: rotate(-5deg); translate: -2px 0; }
    50% { transform: rotate(5deg); translate: 2px -3px; }
}

@keyframes q-buddy-dance-l {
    0%, 100% { transform: rotate(40deg); }
    50% { transform: rotate(140deg); }
}

@keyframes q-buddy-dance-r {
    0%, 100% { transform: rotate(-140deg); }
    50% { transform: rotate(-40deg); }
}

@keyframes q-buddy-bob {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 -2.5px; }
}

@keyframes q-buddy-step {
    0%, 100% { transform: rotate(16deg); }
    50% { transform: rotate(-16deg); }
}

@keyframes q-buddy-swing {
    0%, 100% { transform: rotate(18deg); }
    50% { transform: rotate(-18deg); }
}

@keyframes q-buddy-dangle {
    0%, 100% { transform: scaleY(.52) rotate(10deg); }
    50% { transform: scaleY(.52) rotate(-12deg); }
}

@keyframes q-buddy-dangle-body {
    0%, 100% { rotate: -4deg; }
    50% { rotate: 4deg; }
}

@keyframes q-buddy-wave {
    from { transform: rotate(-150deg); }
    to { transform: rotate(-115deg); }
}

@keyframes q-buddy-look {
    0%, 100% { transform: rotate(0); }
    25% { transform: rotate(-9deg) translateX(-1px); }
    65% { transform: rotate(9deg) translateX(1px); }
}

@keyframes q-buddy-nod {
    50% { transform: rotate(0) translateY(1.6px); }
}

@keyframes q-buddy-land {
    40% { transform: scale(1.08, .9); }
}

@keyframes q-buddy-startle {
    30% { translate: 0 -10px; }
    60% { translate: 0 0; }
}

@keyframes q-buddy-doze {
    0%, 100% { transform: rotate(-6deg) translateY(1px); }
    50% { transform: rotate(-10deg) translateY(2px); }
}

@keyframes q-buddy-zzz {
    0% { opacity: 0; transform: translateY(6px); }
    30%, 70% { opacity: 1; }
    100% { opacity: 0; transform: translateY(-10px); }
}

@keyframes q-buddy-say {
    from { opacity: 0; transform: translateY(6px) scale(.9); }
    to { opacity: 1; transform: none; }
}

html[data-theme="dark"] .q-buddy__say,
html[data-theme="dark"] .q-buddy__hide {
    background: #171e2b;
    border-color: #2a3344;
    color: #e2e8f0;
}

.q-assist-rec {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 5px 0 6px;
    border-radius: inherit;
    background: #fff;
    animation: q-assist-in .18s ease-out;
}

.q-assist-rec__cancel {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: #f1f5f9;
    color: #64748b;
    font-size: 20px;
    cursor: pointer;
    flex: 0 0 auto;
}

.q-assist-rec__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ef4444;
    animation: q-assist-pulse-dot 1s infinite;
    flex: 0 0 auto;
}

.q-assist-rec__time {
    font: 600 14px/1 Inter, system-ui, sans-serif;
    font-variant-numeric: tabular-nums;
    color: #0f172a;
    min-width: 34px;
}

.q-assist-rec__wave {
    flex: 1;
    min-width: 0;
    height: 28px;
    display: flex;
    align-items: center;
    gap: 2px;
    overflow: hidden;
}

.q-assist-rec__wave i {
    flex: 1 1 0;
    max-width: 4px;
    height: 100%;
    border-radius: 2px;
    background: linear-gradient(180deg, #4f9bff, #13c2a3);
    transform: scaleY(.12);
    transition: transform .08s linear;
}

.q-assist-rec__hint {
    display: none;
}

.q-assist-rec__send {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: var(--primary, #1677ff);
    color: #fff;
    display: grid;
    place-items: center;
    cursor: pointer;
    flex: 0 0 auto;
    box-shadow: 0 6px 14px rgba(22, 119, 255, 0.28);
}

.q-assist-rec__send svg {
    width: 20px;
    height: 20px;
}

@keyframes q-assist-pulse-dot {
    50% { opacity: .3; }
}

@media (min-width: 900px) {
    .q-assist.is-page .q-assist-rec__hint {
        display: block;
        font-size: 12px;
        color: #64748b;
        white-space: nowrap;
    }
}

html[data-theme="dark"] .q-assist-greet__bubble,
html[data-theme="dark"] .q-assist-greet__close,
html[data-theme="dark"] .q-assist-rec {
    background: #171e2b;
    border-color: #2a3344;
    color: #e2e8f0;
}

html[data-theme="dark"] .q-assist-greet__bubble p,
html[data-theme="dark"] .q-assist-rec__time {
    color: #cbd5e1;
}

@media (max-width: 720px) {
    .q-assist-greet {
        right: max(12px, env(safe-area-inset-right));
        bottom: calc(max(14px, env(safe-area-inset-bottom)) + 62px);
    }

    .q-assist-greet__bot {
        width: 70px;
        height: 70px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .q-bot__eyes,
    .q-bot__head,
    .q-bot__body,
    .q-bot__hand,
    .q-bot__antenna,
    .q-assist-greet__bot,
    .q-assist-greet__glow,
    .q-assist-fab__aura,
    .q-assist-fab__ring,
    .q-assist-fab__orb,
    .q-assist:not(.is-page) .q-assist-panel {
        animation: none;
    }
}

.q-assist-rec.is-finishing .q-assist-rec__dot { animation: none; opacity: .45; }
.q-assist-rec.is-finishing .q-assist-rec__send { opacity: .6; pointer-events: none; }
