.callback-button {
    position: fixed;
    width: var(--cbb-size, 70px);
    height: var(--cbb-size, 70px);
    border: none;
    border-radius: 999px;
    z-index: 9999;
    cursor: pointer;
    background-color: var(--cbb-color, #ff3b30);
    background-image: var(--cbb-icon);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 58%;
    box-shadow: 0 14px 35px rgba(0,0,0,.22);
    transition: transform .18s ease, box-shadow .18s ease;
}
.callback-button:hover { transform: translateY(-2px) scale(1.03); box-shadow: 0 18px 42px rgba(0,0,0,.28); }
.callback-button.cbb-legacy-icon { background-color: transparent; background-image: var(--cbb-icon); background-repeat: no-repeat; background-position: center; background-size: cover; }
.callback-button.cbb-legacy-icon.cbb-design-green_call,
.callback-button.cbb-legacy-icon.cbb-design-blue_chat,
.callback-button.cbb-legacy-icon.cbb-design-premium_dark,
.callback-button.cbb-legacy-icon.cbb-design-minimal_light,
.callback-button.cbb-legacy-icon.cbb-design-gradient_purple,
.callback-button.cbb-legacy-icon.cbb-design-classic_red { background-color: transparent; background-image: var(--cbb-icon); background-size: cover; border: 0; }
.callback-button.cbb-animated { animation: cbb-pulse 2s infinite; }
@keyframes cbb-pulse {
    0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--cbb-pulse, #ff3b30) 65%, transparent); }
    70% { box-shadow: 0 0 0 20px color-mix(in srgb, var(--cbb-pulse, #ff3b30) 0%, transparent); }
    100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--cbb-pulse, #ff3b30) 0%, transparent); }
}
.cbb-pos-right_bottom { right: var(--cbb-side, 30px); bottom: var(--cbb-bottom, 30px); }
.cbb-pos-left_bottom { left: var(--cbb-side, 30px); bottom: var(--cbb-bottom, 30px); }
.callback-button.cbb-pos-right_center { right: var(--cbb-side, 30px); top: 50%; transform: translateY(-50%); }
.callback-button.cbb-pos-left_center { left: var(--cbb-side, 30px); top: 50%; transform: translateY(-50%); }
.callback-button.cbb-pos-right_center:hover, .callback-button.cbb-pos-left_center:hover { transform: translateY(-50%) scale(1.03); }

.cbb-design-classic_red { background-color: transparent; background-size: cover; background-image: var(--cbb-icon); }
.cbb-design-green_call { background-color: #18b66a; }
.cbb-design-blue_chat { background-color: #2478ff; }
.cbb-design-premium_dark { background-color: #111827; border: 1px solid rgba(255,255,255,.16); }
.cbb-design-minimal_light { background-color: #fff; border: 1px solid rgba(0,0,0,.12); }
.cbb-design-gradient_purple { background-image: var(--cbb-icon), linear-gradient(135deg, #7c3aed, #ec4899); background-size: 58%, cover; }

.callback-form-overlay {
    display: none;
    position: fixed;
    z-index: 10000;
    width: min(360px, calc(100vw - 28px));
}
.callback-form-overlay.cbb-pos-right_bottom { right: var(--cbb-side, 30px); bottom: calc(var(--cbb-bottom, 30px) + var(--cbb-size, 70px) + 18px); }
.callback-form-overlay.cbb-pos-left_bottom { left: var(--cbb-side, 30px); bottom: calc(var(--cbb-bottom, 30px) + var(--cbb-size, 70px) + 18px); }
.callback-form-overlay.cbb-pos-right_center { right: calc(var(--cbb-side, 30px) + var(--cbb-size, 70px) + 18px); top: 50%; transform: translateY(-50%); }
.callback-form-overlay.cbb-pos-left_center { left: calc(var(--cbb-side, 30px) + var(--cbb-size, 70px) + 18px); top: 50%; transform: translateY(-50%); }
.cbb-form {
    position: relative;
    background: #fff;
    padding: 22px;
    border-radius: 22px;
    box-shadow: 0 22px 70px rgba(15,23,42,.28);
    border: 1px solid rgba(15,23,42,.08);
    font-family: inherit;
}
.cbb-close { position: absolute; top: 10px; right: 12px; border: 0; background: transparent; font-size: 25px; line-height: 1; cursor: pointer; color: #64748b; }
.cbb-form-title { font-size: 21px; font-weight: 800; color: #0f172a; margin: 0 26px 5px 0; }
.cbb-form-subtitle { font-size: 14px; line-height: 1.45; color: #64748b; margin: 0 0 16px; }
.cbb-field { display: block; font-size: 13px; font-weight: 700; color: #334155; margin: 0 0 12px; }
.cbb-field input, .cbb-field textarea { width: 100%; margin-top: 6px; padding: 12px 13px; border-radius: 12px; border: 1px solid #cbd5e1; background: #f8fafc; box-sizing: border-box; font-size: 15px; color: #0f172a; }
.cbb-field input:focus, .cbb-field textarea:focus { outline: none; border-color: var(--cbb-color, #ff3b30); background: #fff; box-shadow: 0 0 0 3px rgba(59,130,246,.12); }
.cbb-consent { display: flex; gap: 9px; align-items: flex-start; font-size: 12px; line-height: 1.35; color: #64748b; margin: 3px 0 14px; }
.cbb-consent input { margin-top: 2px; }
.cbb-consent a { color: #2563eb; }
.cbb-submit { width: 100%; border: 0; border-radius: 14px; padding: 13px 16px; cursor: pointer; font-size: 15px; font-weight: 800; color: #fff; background: var(--cbb-color, #ff3b30); box-shadow: 0 10px 24px rgba(0,0,0,.16); }
.cbb-submit:hover { filter: brightness(.95); }
.cbb-response { margin-top: 10px; font-size: 13px; line-height: 1.35; min-height: 18px; }
.cbb-response.is-ok { color: #15803d; }
.cbb-response.is-error { color: #dc2626; }
@media (max-width: 520px) {
    .callback-button { --cbb-size: min(var(--cbb-size), 64px); }
    .callback-form-overlay,
    .callback-form-overlay.cbb-pos-right_bottom,
    .callback-form-overlay.cbb-pos-left_bottom,
    .callback-form-overlay.cbb-pos-right_center,
    .callback-form-overlay.cbb-pos-left_center {
        left: 14px;
        right: 14px;
        bottom: calc(var(--cbb-bottom, 20px) + var(--cbb-size, 64px) + 14px);
        top: auto;
        transform: none;
        width: auto;
    }
}
