/**
 * Sky360 Customer Consent - Frontend Styles
 *
 * Isolated and theme-resistant CSS for checkout and My Account pages.
 *
 * @package Sky360
 * @subpackage CustomerConsent
 * @since 6.0.0
 */

/* ============================================
   CSS Reset for Sky360 Consent Elements
   ============================================ */
.sky360-consent-widget,
.sky360-consent-widget *,
.sky360-consent-widget *::before,
.sky360-consent-widget *::after {
    box-sizing: border-box !important;
    margin: 0;
    padding: 0;
    border: none;
    outline: none;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-decoration: none !important;
    font-style: normal !important;
    font-weight: normal !important;
    line-height: 1.5 !important;
}

/* ============================================
   Consent Widget Container
   ============================================ */
.sky360-consent-widget {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 20px 0 !important;
    padding: 0 !important;
    background: transparent !important;
    float: none !important;
    clear: both !important;
    transform: none !important;
}

/* ============================================
   Consent Card (My Account)
   ============================================ */
.sky360-consent-widget .sky360-consent-card {
    display: block !important;
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    padding: 20px !important;
    margin: 0 0 20px 0 !important;
    box-shadow: none !important;
    width: 100% !important;
    max-width: 100% !important;
}

.sky360-consent-widget .sky360-consent-card h3 {
    display: block !important;
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #1f2937 !important;
    background: transparent !important;
    border: none !important;
    text-align: left !important;
    line-height: 1.4 !important;
}

.sky360-consent-widget .sky360-consent-card .description,
.sky360-consent-widget .sky360-consent-card p.description {
    display: block !important;
    margin: 0 0 15px 0 !important;
    padding: 0 !important;
    color: #6b7280 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    background: transparent !important;
}

/* ============================================
   Consent Control Container
   ============================================ */
.sky360-consent-widget .sky360-consent-control {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    padding: 15px 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    width: 100% !important;
}

/* ============================================
   Consent Label
   ============================================ */
.sky360-consent-widget .sky360-consent-label {
    display: inline-block !important;
    flex: 1 1 auto !important;
    color: #374151 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.sky360-consent-widget .sky360-consent-label a {
    color: #007cba !important;
    text-decoration: underline !important;
}

.sky360-consent-widget .sky360-consent-label a:hover {
    color: #005a8c !important;
}

/* ============================================
   Toggle Switch - Fully Isolated
   ============================================ */
.sky360-consent-widget .sky360-toggle-switch {
    position: relative !important;
    display: inline-block !important;
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    vertical-align: middle !important;
    overflow: visible !important;
}

/* Hidden Checkbox Input */
.sky360-consent-widget .sky360-toggle-switch input,
.sky360-consent-widget .sky360-toggle-switch input[type="checkbox"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
}

/* Toggle Slider Track */
.sky360-consent-widget .sky360-toggle-switch .sky360-toggle-slider {
    position: absolute !important;
    display: block !important;
    cursor: pointer !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 50px !important;
    height: 26px !important;
    background-color: #cbd5e1 !important;
    border: none !important;
    border-radius: 26px !important;
    transition: background-color 0.3s ease !important;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Toggle Slider Knob */
.sky360-consent-widget .sky360-toggle-switch .sky360-toggle-slider::before {
    position: absolute !important;
    content: "" !important;
    display: block !important;
    height: 20px !important;
    width: 20px !important;
    min-height: 20px !important;
    min-width: 20px !important;
    max-height: 20px !important;
    max-width: 20px !important;
    left: 3px !important;
    bottom: 3px !important;
    top: auto !important;
    right: auto !important;
    background-color: #ffffff !important;
    border: none !important;
    border-radius: 50% !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15) !important;
    transition: transform 0.3s ease !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translateX(0) !important;
}

/* Toggle Checked State - Track */
.sky360-consent-widget .sky360-toggle-switch input:checked + .sky360-toggle-slider {
    background-color: var(--toggle-color, #007cba) !important;
}

/* Toggle Checked State - Knob */
.sky360-consent-widget .sky360-toggle-switch input:checked + .sky360-toggle-slider::before {
    transform: translateX(24px) !important;
}

/* Toggle Focus State */
.sky360-consent-widget .sky360-toggle-switch input:focus + .sky360-toggle-slider {
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 0 3px rgba(0, 124, 186, 0.25) !important;
}

/* Toggle Hover State */
.sky360-consent-widget .sky360-toggle-switch:hover .sky360-toggle-slider {
    background-color: #b8c4ce !important;
}

.sky360-consent-widget .sky360-toggle-switch:hover input:checked + .sky360-toggle-slider {
    filter: brightness(0.95) !important;
    background-color: var(--toggle-color, #007cba) !important;
}

/* ============================================
   Standard Checkbox (Fallback Style)
   ============================================ */
.sky360-consent-widget .sky360-consent-control > input[type="checkbox"].sky360-consent-checkbox {
    display: inline-block !important;
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    -moz-appearance: checkbox !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    vertical-align: middle !important;
    accent-color: var(--toggle-color, #007cba) !important;
}

/* ============================================
   Save Button (My Account)
   ============================================ */
.sky360-consent-widget .sky360-consent-save,
.sky360-consent-widget button.sky360-consent-save {
    display: inline-block !important;
    margin: 15px 0 0 0 !important;
    padding: 10px 20px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    color: #ffffff !important;
    background-color: #007cba !important;
    border: none !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    text-align: center !important;
    transition: background-color 0.2s ease !important;
}

.sky360-consent-widget .sky360-consent-save:hover,
.sky360-consent-widget button.sky360-consent-save:hover {
    background-color: #005a8c !important;
}

.sky360-consent-widget .sky360-consent-save:focus,
.sky360-consent-widget button.sky360-consent-save:focus {
    outline: 2px solid rgba(0, 124, 186, 0.5) !important;
    outline-offset: 2px !important;
}

/* ============================================
   Status Messages
   ============================================ */
.sky360-consent-widget .sky360-consent-status {
    display: inline-block !important;
    margin: 0 0 0 10px !important;
    padding: 0 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    vertical-align: middle !important;
    background: transparent !important;
}

.sky360-consent-widget .sky360-consent-status.success {
    color: #10b981 !important;
}

.sky360-consent-widget .sky360-consent-status.error {
    color: #ef4444 !important;
}

.sky360-consent-widget .sky360-consent-status.loading {
    color: #6b7280 !important;
}

/* ============================================
   WooCommerce Checkout - Specific Overrides
   ============================================ */
.woocommerce-checkout .sky360-consent-widget,
.woocommerce form.checkout .sky360-consent-widget,
#order_review .sky360-consent-widget,
.woocommerce-checkout-review-order .sky360-consent-widget {
    display: block !important;
    visibility: visible !important;
    margin: 15px 0 !important;
    padding: 15px !important;
    background: #f9fafb !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    clear: both !important;
}

.woocommerce-checkout .sky360-consent-widget .sky360-consent-control,
.woocommerce form.checkout .sky360-consent-widget .sky360-consent-control {
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
}

/* Ensure toggle is visible on checkout */
.woocommerce-checkout .sky360-consent-widget .sky360-toggle-switch,
.woocommerce form.checkout .sky360-consent-widget .sky360-toggle-switch {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.woocommerce-checkout .sky360-consent-widget .sky360-toggle-slider,
.woocommerce form.checkout .sky360-consent-widget .sky360-toggle-slider {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Override WooCommerce form styles */
.woocommerce-checkout .sky360-consent-widget label,
.woocommerce form.checkout .sky360-consent-widget label {
    display: inline-block !important;
    font-weight: 400 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-checkout .sky360-consent-widget input[type="checkbox"],
.woocommerce form.checkout .sky360-consent-widget input[type="checkbox"] {
    margin: 0 !important;
    vertical-align: middle !important;
}

/* ============================================
   Responsive Styles
   ============================================ */
@media screen and (max-width: 600px) {
    .sky360-consent-widget .sky360-consent-control {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
    }

    .sky360-consent-widget .sky360-toggle-switch {
        order: 2 !important;
    }

    .sky360-consent-widget .sky360-consent-label {
        order: 1 !important;
        flex: none !important;
        width: 100% !important;
    }

    .woocommerce-checkout .sky360-consent-widget,
    .woocommerce form.checkout .sky360-consent-widget {
        padding: 12px !important;
    }
}

/* ============================================
   Print Styles
   ============================================ */
@media print {
    .sky360-consent-widget {
        display: none !important;
    }
}
