:root {
    --sw-b24-accent: #67d0be;
    --sw-b24-accent-hover: #3ea997;
    --sw-b24-primary-text: #ffffff;
    --sw-b24-text: #243533;
    --sw-b24-link: #2e7f72;
    --sw-b24-bg: #ffffff;
    --sw-b24-card-bg: #f4fbf9;
    --sw-b24-overlay: rgba(17, 24, 39, 0.4);
    --sw-b24-field-border: rgba(36, 53, 51, 0.18);
    --sw-b24-radius: 22px;
    --sw-b24-title-size: 22px;
    --sw-b24-text-size: 14px;
    --sw-b24-font-family: inherit;
    --sw-b24-shadow: 0 24px 52px rgba(15, 29, 53, 0.18);
    --sw-b24-border: rgba(103, 208, 190, 0.34);
}

/* Keep only target channels if native Bitrix button is visible. */
.b24-widget-button-social-item:not([data-b24-crm-button-widget="openline_livechat"]):not([data-b24-crm-button-widget="crmform"]):not([data-b24-crm-button-widget="callback"]) {
    display: none !important;
}

/* Bitrix24 form variables (including callback form mount containers) */
.b24-window-mounts [id^="b24-window-mount-b24-site-button-form-"],
.b24-form [id^="b24-b24-site-button-form-"],
.b24-form,
.b24-form.b24-form-dark {
    --b24-font-family-default: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
    --b24-font-family: var(--sw-b24-font-family, var(--b24-font-family-default));
    --b24-primary-color: var(--sw-b24-accent);
    --b24-primary-text-color: var(--sw-b24-primary-text);
    --b24-text-color: var(--sw-b24-text);
    --b24-background-color: var(--sw-b24-bg);
    --b24-field-border-color: var(--sw-b24-field-border);
    --b24-field-background-color: var(--sw-b24-card-bg);
    --b24-field-focus-background-color: var(--sw-b24-bg);
    --b24-popup-background-color: var(--sw-b24-bg);
    --b24-primary-hover-color: var(--sw-b24-accent-hover);
}

/* Chat container / callback panel */
.b24-window-widget,
.b24-window-widget *,
.bx-imopenlines-livechat,
.bx-imopenlines-livechat * {
    font-family: var(--sw-b24-font-family) !important;
}

.b24-window-widget {
    border-radius: var(--sw-b24-radius) !important;
    overflow: hidden !important;
    box-shadow: var(--sw-b24-shadow) !important;
}

.b24-window-widget-body {
    background: var(--sw-b24-bg) !important;
    color: var(--sw-b24-text) !important;
}

/* Forms (crmform/callback) */
.b24-window-widget .b24-form-wrapper {
    background: var(--sw-b24-bg) !important;
    color: var(--sw-b24-text) !important;
}

.b24-window-widget .b24-form-header-padding {
    min-height: 8px !important;
}

.b24-window-widget .b24-form-content {
    padding: 16px !important;
}

.b24-window-widget .b24-form-title,
.b24-window-widget .b24-form-title-text,
.b24-window-widget .b24-form-state-text,
.b24-window-widget .b24-form-control-desc,
.b24-window-widget .b24-form-field-agreement-link {
    color: var(--sw-b24-text) !important;
}

.b24-window-widget .b24-form-control-label {
    color: var(--sw-b24-text) !important;
    opacity: 0.9;
}

.b24-window-widget .b24-form-control {
    border-radius: calc(var(--sw-b24-radius) - 12px) !important;
    border: 1px solid var(--sw-b24-border) !important;
    background: var(--sw-b24-card-bg) !important;
    color: var(--sw-b24-text) !important;
    box-shadow: none !important;
}

.b24-window-widget .b24-form-control:focus {
    border-color: var(--sw-b24-accent) !important;
    box-shadow: 0 0 0 3px rgba(103, 208, 190, 0.22) !important;
}

.b24-window-widget .b24-form-control-alert-message {
    color: #cf3f57 !important;
}

.b24-window-widget .b24-form-btn {
    border-radius: calc(var(--sw-b24-radius) - 12px) !important;
    border: 0 !important;
    min-height: 42px !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    background: linear-gradient(145deg, var(--sw-b24-accent), #3ea997) !important;
    box-shadow: 0 10px 22px rgba(103, 208, 190, 0.32) !important;
}

.b24-window-widget .b24-form-btn:hover {
    filter: brightness(0.98);
}

.b24-window-widget .b24-form-btn.b24-form-btn-border {
    border: 1px solid var(--sw-b24-border) !important;
    color: var(--sw-b24-text) !important;
    background: var(--sw-b24-card-bg) !important;
    box-shadow: none !important;
}

.b24-window-widget .b24-form-sign {
    margin-top: 8px !important;
    border-top: 1px solid rgba(36, 53, 51, 0.14) !important;
    background: transparent !important;
}

.b24-window-widget .b24-form-sign-text,
.b24-window-widget .b24-form-sign-info {
    color: var(--sw-b24-text) !important;
    opacity: 0.68;
}

/* Widget header for livechat shell */
.b24-window-widget .b24-window-widget-head {
    background: linear-gradient(145deg, var(--sw-b24-accent), #3ea997) !important;
    color: #ffffff !important;
}

.b24-window-widget .b24-window-widget-head .b24-window-widget-title,
.b24-window-widget .b24-window-widget-head .b24-window-widget-header-text {
    color: #ffffff !important;
}

/* Generic links in chat/form */
.b24-window-widget a,
.b24-window-widget .b24-form-field-agreement-link a {
    color: var(--sw-b24-link) !important;
}

/* Better readability for small preview modes */
.b24-window-widget .b24-form-control,
.b24-window-widget .b24-form-control-label,
.b24-window-widget .b24-form-control-desc,
.b24-window-widget .b24-form-state-text,
.b24-window-widget .b24-form-sign {
    font-size: var(--sw-b24-text-size) !important;
}

/* Mobile safety */
@media (max-width: 767px) {
    .b24-window-widget {
        max-width: calc(100vw - 16px) !important;
    }

    .b24-window-widget .b24-form-content {
        padding: 12px !important;
    }
}
