body.zpbc-cp-no-select,
body.zpbc-cp-no-select * {
    -webkit-user-select: none !important;
       -moz-user-select: none !important;
        -ms-user-select: none !important;
            user-select: none !important;
}

body.zpbc-cp-no-select input,
body.zpbc-cp-no-select textarea,
body.zpbc-cp-no-select select,
body.zpbc-cp-no-select option,
body.zpbc-cp-no-select [contenteditable="true"],
body.zpbc-cp-no-select .zpbc-copy-allowed,
body.zpbc-cp-no-select a[href^="tel:"],
body.zpbc-cp-no-select a[href^="mailto:"],
body.zpbc-cp-no-select .zpbc-contact,
body.zpbc-cp-no-select .contact-info {
    -webkit-user-select: text !important;
       -moz-user-select: text !important;
        -ms-user-select: text !important;
            user-select: text !important;
}

body.zpbc-cp-no-callout,
body.zpbc-cp-no-callout * {
    -webkit-touch-callout: none !important;
}

body.zpbc-cp-protect-images img:not(.zpbc-copy-allowed) {
    -webkit-user-drag: none;
    user-drag: none;
}

.zpbc-cp-toast {
    position: fixed;
    z-index: 2147483646;
    max-width: min(92vw, 560px);
    padding: 12px 18px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
    font-size: 14px;
    line-height: 1.45;
    text-align: center;
    pointer-events: none;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .18s ease, transform .18s ease;
}

.zpbc-cp-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.zpbc-cp-bottom-center { left: 50%; bottom: max(24px, env(safe-area-inset-bottom)); transform: translate(-50%, 12px); }
.zpbc-cp-bottom-center.is-visible { transform: translate(-50%, 0); }
.zpbc-cp-bottom-left { left: max(24px, env(safe-area-inset-left)); bottom: max(24px, env(safe-area-inset-bottom)); }
.zpbc-cp-bottom-right { right: max(24px, env(safe-area-inset-right)); bottom: max(24px, env(safe-area-inset-bottom)); }
.zpbc-cp-top-center { left: 50%; top: max(24px, env(safe-area-inset-top)); transform: translate(-50%, -12px); }
.zpbc-cp-top-center.is-visible { transform: translate(-50%, 0); }
.zpbc-cp-top-left { left: max(24px, env(safe-area-inset-left)); top: max(24px, env(safe-area-inset-top)); transform: translateY(-12px); }
.zpbc-cp-top-right { right: max(24px, env(safe-area-inset-right)); top: max(24px, env(safe-area-inset-top)); transform: translateY(-12px); }

@media (prefers-reduced-motion: reduce) {
    .zpbc-cp-toast { transition: none; }
}
