    #cs-chatbot-root {
        font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
        line-height: normal;
    }
    /*
     * Hover grows only the chrome (background + shadow), symmetrically from center.
     * Icon/text stay unscaled so they never reflow, thin out, or jump after settle.
     */
    #cs-consent-launcher.cs-launcher {
        position: fixed;
        z-index: 99990;
        bottom: calc(24px + env(safe-area-inset-bottom, 0px));
        box-sizing: border-box;
        min-width: var(--cs-launcher-size, 56px);
        height: var(--cs-launcher-size, 56px);
        width: var(--cs-launcher-size, 56px);
        border: none;
        border-radius: 999px;
        padding: 0;
        margin: 0;
        line-height: 0 !important;
        background: transparent;
        color: var(--cs-launcher-fg, #fff);
        cursor: pointer;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        box-shadow: none;
        transform: none;
        -webkit-appearance: none;
        appearance: none;
        overflow: visible;
        font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important;
        font-weight: 400 !important;
        font-style: normal !important;
        font-size: 14px !important;
        letter-spacing: normal !important;
        text-transform: none !important;
        text-decoration: none !important;
        outline: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
    #cs-consent-launcher.cs-launcher--right {
        right: calc(24px + env(safe-area-inset-right, 0px));
        left: auto;
    }
    #cs-consent-launcher.cs-launcher--left {
        left: calc(24px + env(safe-area-inset-left, 0px));
        right: auto;
    }
    #cs-consent-launcher.cs-launcher--pill {
        width: auto;
        max-width: none;
        padding: 0 18px 0 14px;
    }
    #cs-consent-launcher .cs-launcher-chrome {
        position: absolute;
        inset: 0;
        border-radius: inherit;
        background: var(--cs-launcher-bg, #6366f1);
        box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.2), 0 4px 6px -4px rgb(0 0 0 / 0.2);
        transform: translateZ(0) scale(1);
        transform-origin: center center;
        transition: transform 0.2s ease, box-shadow 0.2s ease;
        backface-visibility: hidden;
        z-index: 0;
        pointer-events: none;
    }
    #cs-consent-launcher.cs-launcher--image {
        padding: 0;
        overflow: hidden;
    }
    #cs-consent-launcher.cs-launcher--image .cs-launcher-chrome {
        background: transparent;
        box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.25);
    }
    #cs-consent-launcher .cs-launcher-face {
        position: relative;
        z-index: 1;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        align-self: stretch;
        height: 100%;
        gap: 8px;
        margin: 0;
        padding: 0;
        line-height: 0;
        transform: none;
    }
    #cs-consent-launcher svg {
        display: block !important;
        flex: 0 0 auto;
        align-self: center;
        width: calc(var(--cs-launcher-size, 56px) * 0.46) !important;
        height: calc(var(--cs-launcher-size, 56px) * 0.46) !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible;
        color: inherit;
        vertical-align: middle;
    }
    #cs-consent-launcher .cs-launcher-label {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 auto;
        align-self: center;
        /* Same box height as the icon so both share one midline. */
        height: calc(var(--cs-launcher-size, 56px) * 0.46) !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0;
        font-size: 14px !important;
        font-weight: 400 !important;
        font-style: normal !important;
        font-family: inherit !important;
        letter-spacing: normal !important;
        text-transform: none !important;
        text-decoration: none !important;
        line-height: 1 !important;
        white-space: nowrap;
        position: static;
        top: auto;
        /* Optical: lowercase glyphs sit low in the em-box vs SVG strokes. */
        transform: translateY(-1px) !important;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
    #cs-consent-launcher .cs-launcher-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 50%;
        display: block;
    }
    #cs-consent-launcher.cs-launcher,
    #cs-consent-launcher.cs-launcher:hover,
    #cs-consent-launcher.cs-launcher:focus,
    #cs-consent-launcher.cs-launcher:focus-visible,
    #cs-consent-launcher.cs-launcher:active,
    #cs-consent-launcher.cs-launcher .cs-launcher-label,
    #cs-consent-launcher.cs-launcher:hover .cs-launcher-label {
        font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important;
        font-size: 14px !important;
        font-weight: 400 !important;
        font-style: normal !important;
        letter-spacing: normal !important;
        text-transform: none !important;
        text-decoration: none !important;
        line-height: 1 !important;
    }
    #cs-consent-launcher.cs-launcher--hover:hover .cs-launcher-chrome {
        transform: translateZ(0) scale(1.06);
    }
    #cs-consent-launcher.cs-launcher--hover:hover .cs-launcher-face,
    #cs-consent-launcher.cs-launcher--hover:hover svg {
        transform: none !important;
    }
    #cs-consent-launcher.cs-launcher--hover:hover .cs-launcher-label {
        /* Keep optical nudge; do not clear it on hover. */
        transform: translateY(-1px) !important;
    }
    #cs-consent-launcher.cs-is-opening {
        pointer-events: none;
        animation: csLauncherOpening 0.9s ease-in-out infinite;
    }
    @keyframes csLauncherOpening {
        0%, 100% { opacity: 1; }
        50% { opacity: 0.72; }
    }
    /*
     * Soft attention pulse: expanding ring on chrome (idle, no hover needed).
     * Uses ::after so it does not fight the hover scale transition on box-shadow.
     * Parent must not clip the ring (overflow visible while pulsing).
     */
    #cs-consent-launcher.cs-launcher--pulse,
    .cs-chat-inline-btn.cs-launcher--pulse {
        overflow: visible;
    }
    .cs-launcher--pulse .cs-launcher-chrome {
        overflow: visible;
    }
    .cs-launcher--pulse .cs-launcher-chrome::after {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: inherit;
        box-shadow: 0 0 0 0 var(--cs-launcher-bg, #6366f1);
        opacity: 0.55;
        animation: csLauncherPulseRing 2.4s ease-out infinite;
        pointer-events: none;
        will-change: box-shadow, opacity;
    }
    #cs-consent-launcher.cs-launcher--pulse.cs-is-opening .cs-launcher-chrome::after,
    .cs-chat-open .cs-launcher--pulse .cs-launcher-chrome::after {
        animation: none;
        opacity: 0;
    }
    #cs-consent-launcher.cs-launcher--pulse.cs-is-opening {
        animation: csLauncherOpening 0.9s ease-in-out infinite;
    }
    @keyframes csLauncherPulseRing {
        0% {
            box-shadow: 0 0 0 0 var(--cs-launcher-bg, #6366f1);
            opacity: 0.55;
        }
        70% {
            box-shadow: 0 0 0 14px var(--cs-launcher-bg, #6366f1);
            opacity: 0;
        }
        100% {
            box-shadow: 0 0 0 0 var(--cs-launcher-bg, #6366f1);
            opacity: 0;
        }
    }
    #cs-consent-launcher.cs-launcher--unread .cs-launcher-chrome::after {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: inherit;
        box-shadow: 0 0 0 0 var(--cs-launcher-bg, #6366f1);
        opacity: 0.65;
        animation: csLauncherPulseRing 1.6s ease-out infinite;
        pointer-events: none;
    }
    @media (prefers-reduced-motion: reduce) {
        .cs-launcher--pulse .cs-launcher-chrome::after,
        #cs-consent-launcher.cs-launcher--unread .cs-launcher-chrome::after,
        #cs-consent-launcher.cs-is-opening {
            animation: none !important;
            opacity: 0 !important;
        }
        #cs-consent-launcher.cs-launcher--hover:hover .cs-launcher-chrome,
        .cs-chat-inline-btn.cs-launcher--hover:hover .cs-launcher-chrome {
            transition: none !important;
            transform: translateZ(0) scale(1) !important;
        }
    }
    #cs-consent-launcher[hidden], #cs-chatbot-host[hidden], #cs-consent-modal[hidden] { display: none !important; }
    /* In-page shortcode / custom open buttons (not fixed to the corner) */
    .cs-chat-inline-btn {
        position: relative;
        z-index: 1;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0;
        box-sizing: border-box;
        min-width: var(--cs-launcher-size, 56px);
        height: var(--cs-launcher-size, 56px);
        width: auto;
        margin: 0;
        padding: 0 18px 0 14px;
        border: none;
        border-radius: 999px;
        background: transparent;
        color: var(--cs-launcher-fg, #fff);
        cursor: pointer;
        line-height: 0 !important;
        font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important;
        font-size: 14px !important;
        font-weight: 400 !important;
        text-decoration: none !important;
        vertical-align: middle;
        -webkit-appearance: none;
        appearance: none;
        overflow: visible;
        -webkit-font-smoothing: antialiased;
    }
    .cs-chat-inline-btn .cs-launcher-chrome {
        position: absolute;
        inset: 0;
        border-radius: inherit;
        background: var(--cs-launcher-bg, #6366f1);
        box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.2), 0 4px 6px -4px rgb(0 0 0 / 0.2);
        transform: translateZ(0) scale(1);
        transform-origin: center center;
        transition: transform 0.2s ease, box-shadow 0.2s ease;
        z-index: 0;
        pointer-events: none;
    }
    .cs-chat-inline-btn.cs-launcher--hover:hover .cs-launcher-chrome {
        transform: translateZ(0) scale(1.06);
    }
    .cs-chat-inline-btn .cs-launcher-face {
        position: relative;
        z-index: 1;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px;
        height: 100%;
        line-height: 0;
    }
    .cs-chat-inline-btn svg {
        display: block !important;
        width: calc(var(--cs-launcher-size, 56px) * 0.46) !important;
        height: calc(var(--cs-launcher-size, 56px) * 0.46) !important;
        flex: 0 0 auto;
        margin: 0 !important;
        color: inherit;
    }
    .cs-chat-inline-btn .cs-launcher-label {
        display: inline-flex !important;
        align-items: center !important;
        height: calc(var(--cs-launcher-size, 56px) * 0.46) !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 14px !important;
        font-weight: 400 !important;
        line-height: 1 !important;
        white-space: nowrap;
        transform: translateY(-1px);
    }
    .cs-chat-inline-btn.cs-chat-inline-btn--text {
        padding: 0;
        min-width: 0;
        height: auto;
        width: auto;
        color: inherit;
        background: transparent;
        border-radius: 0;
        font-size: inherit !important;
        font-weight: inherit !important;
        line-height: inherit !important;
        text-decoration: underline;
        box-shadow: none;
    }
    .cs-chat-inline-btn.cs-chat-inline-btn--text .cs-launcher-chrome {
        display: none;
    }
    #cs-consent-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; }
    .cs-consent-backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, 0.45); }
    .cs-consent-card {
        position: relative; max-width: 420px; width: 100%; background: #fff; color: #0f172a;
        border-radius: 16px; padding: 22px 22px 18px; box-shadow: 0 20px 40px rgba(0,0,0,0.2);
    }
    .cs-consent-card h2 { margin: 0 0 10px; font-size: 1.2rem; }
    .cs-consent-card p, .cs-consent-card li { font-size: 14px; line-height: 1.5; color: #334155; }
    .cs-consent-card ul {
        margin: 10px 0 12px !important;
        padding-left: 1.35em !important;
        list-style-type: disc !important;
        list-style-position: outside !important;
    }
    .cs-consent-card li {
        display: list-item !important;
        margin: 0 0 8px !important;
        padding-left: 0.15em;
    }
    .cs-consent-card li:last-child { margin-bottom: 0; }
    .cs-consent-note { margin-top: 8px; }
    .cs-consent-links { margin: 8px 0 0; font-size: 13px; }
    .cs-consent-links a { color: #2563eb; }
    .cs-consent-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; flex-wrap: wrap; }
    .cs-hp {
        position: absolute !important;
        left: -10000px !important;
        top: auto !important;
        width: 1px !important;
        height: 1px !important;
        overflow: hidden !important;
    }
    .cs-consent-error { margin: 10px 0 0; color: #b91c1c; font-size: 13px; }
    .cs-btn-primary, .cs-btn-secondary {
        border-radius: 10px; padding: 10px 14px; font-size: 14px; font-weight: 600; cursor: pointer; border: 1px solid transparent;
    }
    .cs-btn-primary { background: var(--cs-secondary, #ff3300); color: #fff; border-color: var(--cs-secondary, #ff3300); }
    .cs-btn-secondary { background: #fff; color: #334155; border-color: #cbd5e1; }
    #cs-chatbot-host {
        position: fixed; bottom: 0; width: 120px; height: 120px; z-index: 99990;
        max-width: 100%; box-sizing: border-box;
        overflow: visible; background: transparent; line-height: 0; pointer-events: none;
        /* Slide via transform only — never morph width/height/bottom with open/close */
        transform: translate3d(0, 0, 0);
        opacity: 0;
        transition:
            transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
            opacity 0.22s ease,
            box-shadow 0.22s ease;
        will-change: transform, opacity;
    }
    #cs-chatbot-host[hidden] {
        display: none !important;
        opacity: 0 !important;
        transform: translate3d(0, 0, 0) !important;
        transition: none !important;
    }
    #cs-chatbot-host.cs-host--right { right: 0; left: auto; }
    #cs-chatbot-host.cs-host--left { left: 0; right: auto; }
    /* Desktop full-height side panel (Polaris-style dock, brand theming stays in iframe) */
    #cs-chatbot-host.cs-host--sidebar-open {
        top: 0 !important;
        bottom: 0 !important;
        width: 400px !important;
        max-width: min(400px, 100vw) !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: hidden !important;
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
    #cs-chatbot-host.cs-host--sidebar-open.cs-host--right {
        right: 0 !important;
        left: auto !important;
        box-shadow: -10px 0 36px -12px rgba(15, 23, 42, 0.28);
    }
    #cs-chatbot-host.cs-host--sidebar-open.cs-host--left {
        left: 0 !important;
        right: auto !important;
        box-shadow: 10px 0 36px -12px rgba(15, 23, 42, 0.28);
    }
    /* Off-screen start / close: slide from the docked edge (right default, left when docked left) */
    #cs-chatbot-host.cs-host--sidebar-open.cs-host--right.cs-host--pre-slide,
    #cs-chatbot-host.cs-host--sidebar-open.cs-host--right.cs-host--slide-out {
        transform: translate3d(100%, 0, 0);
        opacity: 0;
    }
    #cs-chatbot-host.cs-host--sidebar-open.cs-host--left.cs-host--pre-slide,
    #cs-chatbot-host.cs-host--sidebar-open.cs-host--left.cs-host--slide-out {
        transform: translate3d(-100%, 0, 0);
        opacity: 0;
    }
    #cs-chatbot-host.cs-host--narrow-open {
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
    #cs-chatbot-host.cs-host--narrow-open.cs-host--pre-slide,
    #cs-chatbot-host.cs-host--narrow-open.cs-host--slide-out {
        transform: translate3d(0, 100%, 0);
        opacity: 0;
    }
    /* Instant size snaps (no width/height tween) while preparing a slide */
    #cs-chatbot-host.cs-host--no-motion {
        transition: none !important;
    }
    #cs-chatbot-host iframe {
        width: 100%; max-width: 100%; height: 100%; border: 0; background: transparent; display: block; pointer-events: auto;
        box-sizing: border-box;
    }
    /* Full open panel covers the corner — hide FAB while open (header X fully closes). */
    #cs-chatbot-root.cs-chat-open #cs-consent-launcher.cs-launcher {
        display: none !important;
    }
    @media (max-width: 540px) {
        #cs-consent-launcher.cs-launcher {
            bottom: calc(16px + env(safe-area-inset-bottom, 0px));
        }
        #cs-consent-launcher.cs-launcher--right {
            right: calc(16px + env(safe-area-inset-right, 0px));
        }
        #cs-consent-launcher.cs-launcher--left {
            left: calc(16px + env(safe-area-inset-left, 0px));
        }
        #cs-chatbot-host.cs-host--narrow-open {
            left: 0 !important;
            right: 0 !important;
            top: 0 !important;
            bottom: 0 !important;
            /* 100% not 100vw — avoids iOS horizontal overflow from scrollbar gutter */
            width: 100% !important;
            max-width: 100% !important;
            height: 100dvh !important;
            max-height: 100dvh !important;
            overflow-x: hidden !important;
            box-shadow: none !important;
        }
    }
