/**
 * ENNU Life Modal Manager - Single Source of Truth
 * Guaranteed visibility on any theme with light greyscale design
 *
 * @package ENNU_Life_Assessments
 * @version 100.5.15
 *
 * CHANGELOG v100.5.15:
 * - Enhanced backdrop blur and saturation
 * - Better modal entrance animation (slide up + scale)
 * - Improved mobile responsiveness with safe area support
 * - Landscape mode optimization
 * - Touch-friendly padding and scroll handling
 */

/* =================================================================
   CORE MODAL OVERLAY - Guaranteed Visibility
   ================================================================= */

.ennu-modal-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(0, 0, 0, 0.8) !important;
    backdrop-filter: blur(8px) saturate(120%) !important;
    -webkit-backdrop-filter: blur(8px) saturate(120%) !important;
    z-index: 999999 !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity 400ms cubic-bezier(0.4, 0, 0.2, 1),
                visibility 400ms,
                backdrop-filter 400ms;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

.ennu-modal-overlay.active {
    opacity: 1 !important;
    visibility: visible !important;
}

/* =================================================================
   MODAL CONTAINER - Light Theme Optimized
   ================================================================= */

.ennu-modal-container {
    position: relative !important;
    background: #ffffff !important;
    border-radius: 16px !important;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4),
                0 15px 30px rgba(0, 0, 0, 0.3),
                0 5px 15px rgba(0, 0, 0, 0.2) !important;
    max-width: 90% !important;
    max-height: 90vh !important;
    overflow: hidden !important;
    transform: scale(0.9) translateY(20px);
    opacity: 0;
    transition: all 400ms cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    /* Prevent content from overflowing on mobile */
    width: 100%;
    margin: auto;
}

.ennu-modal-container.active {
    transform: scale(1) translateY(0) !important;
    opacity: 1 !important;
}

/* Size Variants */
.ennu-modal-container.small {
    max-width: 400px !important;
}

.ennu-modal-container.medium {
    max-width: 600px !important;
}

.ennu-modal-container.large {
    max-width: 900px !important;
}

.ennu-modal-container.fullscreen {
    max-width: 100% !important;
    max-height: 100% !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: 0 !important;
}

/* =================================================================
   MODAL TITLE - Light Greyscale Theme
   ================================================================= */

.ennu-modal-title {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #1a1a1a !important;
    margin: 0 !important;
}

/* =================================================================
   MODAL CLOSE BUTTON - Greyscale
   ================================================================= */

.ennu-modal-close {
    background: none !important;
    border: none !important;
    font-size: 28px !important;
    color: #6b7280 !important;
    cursor: pointer !important;
    padding: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 6px !important;
    transition: all 0.2s !important;
    line-height: 1 !important;
}

.ennu-modal-close:hover {
    background: rgba(0, 0, 0, 0.05) !important;
    color: #1a1a1a !important;
}

.ennu-modal-close:focus {
    outline: 2px solid #374151 !important;
    outline-offset: 2px !important;
}

/* =================================================================
   MODAL BODY - Light Theme
   ================================================================= */

.ennu-modal-body {
    padding: 24px !important;
    max-height: calc(90vh - 160px) !important;
    overflow-y: auto !important;
    color: #1a1a1a !important;
    background: #ffffff !important;
}

/* Scrollbar Styling - Light Theme */
.ennu-modal-body::-webkit-scrollbar {
    width: 8px;
}

.ennu-modal-body::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 4px;
}

.ennu-modal-body::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border-radius: 4px;
}

.ennu-modal-body::-webkit-scrollbar-thumb:hover {
    background: #6b7280;
}

/* =================================================================
   MODAL FOOTER - Light Theme
   ================================================================= */

.ennu-modal-footer {
    padding: 20px 24px !important;
    border-top: 1px solid rgba(0, 0, 0, 0.1) !important;
    display: flex !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    background: #f8f9fa !important;
}

/* =================================================================
   RESPONSIVE DESIGN
   ================================================================= */

@media (max-width: 768px) {
    .ennu-modal-container {
        max-width: 95% !important;
        max-height: 95vh !important;
    }

    .ennu-modal-body {
        max-height: calc(95vh - 140px) !important;
    }

    .ennu-modal-title {
        font-size: 18px !important;
    }
}

@media (max-width: 480px) {
    .ennu-modal-overlay {
        padding: 8px !important;
    }

    .ennu-modal-container {
        max-width: 100% !important;
        max-height: 98vh !important;
        border-radius: 12px !important;
    }

    .ennu-modal-title {
        font-size: 16px !important;
    }

    .ennu-modal-body {
        padding: 16px !important;
        max-height: calc(98vh - 120px) !important;
    }

    .ennu-modal-close {
        width: 32px !important;
        height: 32px !important;
        font-size: 24px !important;
    }
}

/* Landscape mode on mobile */
@media (max-height: 500px) and (orientation: landscape) {
    .ennu-modal-overlay {
        padding: 8px !important;
    }

    .ennu-modal-container {
        max-height: 96vh !important;
        overflow-y: auto !important;
    }

    .ennu-modal-body {
        max-height: calc(96vh - 80px) !important;
    }
}

/* Safe area support for notched devices (iPhone X+, etc) */
@supports (padding: max(0px)) {
    .ennu-modal-overlay {
        padding-top: max(16px, env(safe-area-inset-top)) !important;
        padding-bottom: max(16px, env(safe-area-inset-bottom)) !important;
        padding-left: max(16px, env(safe-area-inset-left)) !important;
        padding-right: max(16px, env(safe-area-inset-right)) !important;
    }
}

/* =================================================================
   ACCESSIBILITY ENHANCEMENTS
   ================================================================= */

.ennu-modal-overlay[aria-hidden="true"] {
    display: none !important;
}

.ennu-modal-overlay[aria-hidden="false"] {
    display: flex !important;
}

.ennu-modal-container:focus {
    outline: 2px solid #374151 !important;
    outline-offset: -2px !important;
}

/* Keyboard Navigation - Focus Visible */
.ennu-modal-body a:focus-visible,
.ennu-modal-body button:focus-visible,
.ennu-modal-body input:focus-visible,
.ennu-modal-body select:focus-visible,
.ennu-modal-body textarea:focus-visible {
    outline: 3px solid #374151 !important;
    outline-offset: 2px !important;
}

/* =================================================================
   REDUCED MOTION SUPPORT
   ================================================================= */

@media (prefers-reduced-motion: reduce) {
    .ennu-modal-overlay,
    .ennu-modal-container {
        transition: none !important;
        animation: none !important;
    }

    .ennu-modal-container {
        transform: none !important;
    }

    .ennu-modal-container.active {
        transform: none !important;
    }
}

/* =================================================================
   HIGH CONTRAST MODE SUPPORT
   ================================================================= */

@media (prefers-contrast: high) {
    .ennu-modal-overlay {
        background: rgba(0, 0, 0, 0.9) !important;
    }

    .ennu-modal-container {
        border: 2px solid #000 !important;
    }

    .ennu-modal-footer {
        border-color: #000 !important;
    }
}

/* =================================================================
   PRINT STYLES
   ================================================================= */

@media print {
    .ennu-modal-overlay {
        display: none !important;
    }
}
