.consent-modal-overlay {
    -webkit-overflow-scrolling: touch;
}

[x-data="consentModal()"] .bg-black\/30 {
    background-color: rgba(0, 0, 0, 0.45) !important;
}

[x-data="consentModal()"] .bg-white {
    background-color: #ffffff !important;
}

[x-data="consentModal()"] .bg-red-50 {
    background-color: #fef2f2 !important;
}

[x-data="consentModal()"] .border-red-200 {
    border-color: #fecaca !important;
}

[x-data="consentModal()"] .text-red-800 {
    color: #991b1b !important;
}

[x-data="consentModal()"] .text-red-700 {
    color: #b91c1c !important;
}

[x-data="consentModal()"] .text-red-600 {
    color: #dc2626 !important;
}

[x-data="consentModal()"] .font-bold,
[x-data="consentModal()"] .font-semibold {
    color: inherit;
}

[x-data="consentModal()"] h2 {
    color: #111827 !important;
}

[x-data="consentModal()"] h4.text-red-800 {
    color: #991b1b !important;
}

[x-data="consentModal()"] .text-gray-900 {
    color: #111827 !important;
}

[x-data="consentModal()"] .text-gray-700 {
    color: #374151 !important;
}

[x-data="consentModal()"] .text-gray-600 {
    color: #4b5563 !important;
}

[x-data="consentModal()"] .text-sm.text-gray-600 {
    color: #4b5563 !important;
}

[x-data="consentModal()"] .border-red-300 {
    border-color: #fca5a5 !important;
}

[x-data="consentModal()"] .bg-red-50.hover\:bg-red-100:hover {
    background-color: #fee2e2 !important;
}

[x-data="consentModal()"] .bg-purple-600 {
    background-color: #9333ea !important;
}

[x-data="consentModal()"] .bg-purple-600:hover {
    background-color: #7e22ce !important;
}

[x-data="consentModal()"] .bg-purple-300 {
    background-color: #d8b4fe !important;
}

[x-data="consentModal()"] span {
    color: inherit;
}

[x-data="consentModal()"] p {
    color: inherit;
}

[x-data="consentModal()"] li {
    color: inherit;
}

[x-data="consentModal()"] strong {
    color: inherit !important;
}

[x-data="consentModal()"] label span {
    color: #374151 !important;
}

[x-data="consentModal()"] .rounded-xl {
    border-radius: 0.75rem !important;
}

[x-data="consentModal()"] .shadow-2xl {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
}

/* ===== Dark theme overrides ===== */

[data-theme="dark"] [x-data="consentModal()"] .bg-white,
[data-theme="dark"] [x-data="consentModal()"] .dark\:bg-gray-800 {
    background-color: #1f2937 !important;
}

[data-theme="dark"] [x-data="consentModal()"] .bg-black\/30 {
    background-color: rgba(0, 0, 0, 0.6) !important;
}

[data-theme="dark"] [x-data="consentModal()"] h2 {
    color: #ffffff !important;
}

[data-theme="dark"] [x-data="consentModal()"] .text-gray-900,
[data-theme="dark"] [x-data="consentModal()"] .dark\:text-white {
    color: #ffffff !important;
}

[data-theme="dark"] [x-data="consentModal()"] .text-gray-600,
[data-theme="dark"] [x-data="consentModal()"] .text-sm.text-gray-600,
[data-theme="dark"] [x-data="consentModal()"] .dark\:text-gray-400 {
    color: #9ca3af !important;
}

[data-theme="dark"] [x-data="consentModal()"] .text-gray-700,
[data-theme="dark"] [x-data="consentModal()"] .dark\:text-gray-300 {
    color: #d1d5db !important;
}

[data-theme="dark"] [x-data="consentModal()"] .bg-red-50,
[data-theme="dark"] [x-data="consentModal()"] .dark\:bg-red-900\/20 {
    background-color: rgba(127, 29, 29, 0.2) !important;
}

[data-theme="dark"] [x-data="consentModal()"] .border-red-200,
[data-theme="dark"] [x-data="consentModal()"] .dark\:border-red-800 {
    border-color: #991b1b !important;
}

[data-theme="dark"] [x-data="consentModal()"] .text-red-800,
[data-theme="dark"] [x-data="consentModal()"] h4.text-red-800,
[data-theme="dark"] [x-data="consentModal()"] .dark\:text-red-200 {
    color: #fecaca !important;
}

[data-theme="dark"] [x-data="consentModal()"] .text-red-700,
[data-theme="dark"] [x-data="consentModal()"] .dark\:text-red-300 {
    color: #fca5a5 !important;
}

[data-theme="dark"] [x-data="consentModal()"] .text-red-600,
[data-theme="dark"] [x-data="consentModal()"] .dark\:text-red-400 {
    color: #f87171 !important;
}

[data-theme="dark"] [x-data="consentModal()"] .border-red-300,
[data-theme="dark"] [x-data="consentModal()"] .dark\:border-red-700 {
    border-color: #b91c1c !important;
}

[data-theme="dark"] [x-data="consentModal()"] .bg-red-50.hover\:bg-red-100:hover,
[data-theme="dark"] [x-data="consentModal()"] .dark\:hover\:bg-red-900\/30:hover {
    background-color: rgba(127, 29, 29, 0.3) !important;
}

[data-theme="dark"] [x-data="consentModal()"] .bg-purple-600 {
    background-color: #9333ea !important;
}

[data-theme="dark"] [x-data="consentModal()"] .bg-purple-600:hover {
    background-color: #7e22ce !important;
}

[data-theme="dark"] [x-data="consentModal()"] .bg-purple-300 {
    background-color: rgba(147, 51, 234, 0.4) !important;
}

[data-theme="dark"] [x-data="consentModal()"] label span {
    color: #d1d5db !important;
}

[data-theme="dark"] [x-data="consentModal()"] label:hover span {
    color: #ffffff !important;
}

[data-theme="dark"] [x-data="consentModal()"] strong {
    color: inherit !important;
}

[data-theme="dark"] [x-data="consentModal()"] .font-bold,
[data-theme="dark"] [x-data="consentModal()"] .font-semibold {
    color: inherit;
}

[data-theme="dark"] [x-data="consentModal()"] span,
[data-theme="dark"] [x-data="consentModal()"] p,
[data-theme="dark"] [x-data="consentModal()"] li {
    color: inherit;
}

[data-theme="dark"] [x-data="consentModal()"] .shadow-2xl {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5) !important;
}

[data-theme="dark"] [x-data="consentModal()"] input[type="checkbox"] {
    background-color: #374151 !important;
    border-color: #4b5563 !important;
}

@media (max-width: 640px) {
    .fixed.inset-0 .max-w-2xl {
        max-width: 100%;
        margin: 0;
        padding: 1.25rem;
        border-radius: 0.75rem;
    }

    .fixed.inset-0 .flex.items-center.justify-center {
        padding: 0.75rem;
        align-items: flex-start;
        padding-top: 2rem;
    }

    .fixed.inset-0 .max-w-2xl .mb-6:first-child h2 {
        font-size: 1.25rem;
    }

    .fixed.inset-0 .max-w-2xl .mb-6:first-child p {
        font-size: 0.8125rem;
    }

    .fixed.inset-0 .p-6 {
        padding: 1rem;
    }

    .fixed.inset-0 .text-lg {
        font-size: 0.9375rem;
    }

    .fixed.inset-0 .space-y-4 {
        font-size: 0.8125rem;
    }

    .fixed.inset-0 .space-y-4 .font-semibold {
        font-size: 0.8125rem;
        line-height: 1.4;
    }

    .fixed.inset-0 .space-y-4 ul {
        margin-left: 0.75rem;
    }

    .fixed.inset-0 .space-y-4 li {
        font-size: 0.75rem;
        line-height: 1.4;
    }

    .fixed.inset-0 .ml-3 {
        font-size: 0.8125rem;
        line-height: 1.4;
    }

    .fixed.inset-0 .flex.space-x-4 {
        gap: 0.5rem;
    }

    .fixed.inset-0 .flex.space-x-4 button {
        padding: 0.625rem 1rem;
        font-size: 0.8125rem;
    }

    .fixed.inset-0 label input[type="checkbox"] {
        margin-top: 0.125rem;
    }
}

@media (max-width: 480px) {
    .fixed.inset-0 .flex.items-center.justify-center {
        padding: 0.5rem;
        padding-top: 1rem;
    }

    .fixed.inset-0 .max-w-2xl {
        padding: 1rem;
        border-radius: 0.5rem;
        max-height: calc(100vh - 2rem);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .fixed.inset-0 .max-w-2xl .mb-6 {
        margin-bottom: 0.75rem;
    }

    .fixed.inset-0 .max-w-2xl .mb-6:first-child h2 {
        font-size: 1.125rem;
    }

    .fixed.inset-0 .p-6 {
        padding: 0.75rem;
    }

    .fixed.inset-0 .text-lg {
        font-size: 0.875rem;
        margin-bottom: 0.5rem;
    }

    .fixed.inset-0 .space-y-4 {
        font-size: 0.75rem;
    }

    .fixed.inset-0 .space-y-4 .font-semibold {
        font-size: 0.75rem;
    }

    .fixed.inset-0 .space-y-4 li {
        font-size: 0.6875rem;
    }

    .fixed.inset-0 .space-y-4 .pt-2 p {
        font-size: 0.6875rem;
        line-height: 1.4;
    }

    .fixed.inset-0 .ml-3 {
        font-size: 0.75rem;
    }

    .fixed.inset-0 .flex.space-x-4 button {
        padding: 0.5rem 0.75rem;
        font-size: 0.75rem;
    }
}

@supports (-webkit-touch-callout: none) {
    .fixed.inset-0 .max-w-2xl {
        margin-bottom: env(safe-area-inset-bottom);
    }
}