/* PhlankerLoader Component Styles */

/* Base overlay */
.phlanker-loader-overlay {
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    transition: opacity 0.3s ease-in-out;
}

/* Full screen positioning */
.phlanker-loader-fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: 100vh;
}

/* Relative positioning (for container-scoped loaders) */
.phlanker-loader-overlay:not(.phlanker-loader-fullscreen) {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
}

/* Container */
.phlanker-loader-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

/* Animation container */
.phlanker-loader-animation {
    display: flex;
    align-items: center;
    justify-content: center;
}

.phlanker-loader-animation img {
    width: 100%;
    height: 100%;
}

/* Text styling */
.phlanker-loader-text {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
    font-size: 1rem;
    font-weight: 500;
    text-align: center;
    padding: 0 20px;
    max-width: 300px;
    animation: phlanker-text-pulse 2s ease-in-out infinite;
}

@keyframes phlanker-text-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* Text colors */
.phlanker-text-light {
    color: #ffffff;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.phlanker-text-dark {
    color: #1a1a2e;
    text-shadow: 0 1px 4px rgba(255, 255, 255, 0.3);
}

/* Background styles */
.phlanker-bg-none {
    background: transparent;
}

.phlanker-bg-dark {
    background: rgba(0, 0, 0, 0.7);
}

.phlanker-bg-light {
    background: rgba(255, 255, 255, 0.85);
}

.phlanker-bg-blur-dark {
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.phlanker-bg-blur-light {
    background: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.phlanker-bg-brand {
    background: rgba(26, 26, 46, 0.92);
}

/* Size variations - can be applied via additional attributes */
.phlanker-loader-sm .phlanker-loader-animation {
    width: 60px !important;
    height: 60px !important;
}

.phlanker-loader-sm .phlanker-loader-text {
    font-size: 0.85rem;
}

.phlanker-loader-lg .phlanker-loader-animation {
    width: 150px !important;
    height: 150px !important;
}

.phlanker-loader-lg .phlanker-loader-text {
    font-size: 1.2rem;
}

.phlanker-loader-xl .phlanker-loader-animation {
    width: 200px !important;
    height: 200px !important;
}

.phlanker-loader-xl .phlanker-loader-text {
    font-size: 1.4rem;
}

/* Responsive adjustments */
@media (max-width: 480px) {
    .phlanker-loader-text {
        font-size: 0.9rem;
        max-width: 250px;
    }
}

/* Entry animation */
.phlanker-loader-overlay {
    animation: phlanker-fade-in 0.3s ease-out;
}

@keyframes phlanker-fade-in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
