/* Modern Background Patterns for Safline */

/* Additional Tailwind-style animations */
@keyframes spin-slow {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.animate-spin-slow {
    animation: spin-slow 3s linear infinite;
}

.animate-float {
    animation: float 3s ease-in-out infinite;
}

/* Glassmorphism form card styles */
.form-card {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* Plan card styles */
.plan-card {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    transition: all 0.3s ease;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

.plan-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.plan-card.selected {
    border: 2px solid #3b82f6;
    box-shadow: 0 20px 40px rgba(59, 130, 246, 0.3);
    background: rgba(255, 255, 255, 1);
}

/* Gradient Backgrounds */
.bg-gradient-purple {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.bg-gradient-blue {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.bg-gradient-green {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.bg-gradient-ocean {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

/* Animated Background Classes */
.bg-animated-gradient {
    background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
    background-size: 400% 400%;
    animation: gradientShift 15s ease infinite;
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Glassmorphism Backgrounds */
.bg-glass {
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.18);
}

.bg-glass-dark {
    background: rgba(0, 0, 0, 0.25);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.18);
}

/* Geometric Patterns */
.bg-pattern-dots {
    background-image: radial-gradient(circle at 2px 2px, rgba(255,255,255,0.15) 1px, transparent 0);
    background-size: 20px 20px;
}

.bg-pattern-grid {
    background-image: 
        linear-gradient(rgba(255,255,255,0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.1) 1px, transparent 1px);
    background-size: 50px 50px;
}

.bg-pattern-diagonal {
    background-image: repeating-linear-gradient(
        45deg,
        transparent,
        transparent 10px,
        rgba(255,255,255,0.05) 10px,
        rgba(255,255,255,0.05) 20px
    );
}

/* Minimal Page-specific Backgrounds */
.bg-dashboard {
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
}

.bg-admin {
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
}

.bg-public {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    position: relative;
}

.bg-public::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: repeating-linear-gradient(
        45deg,
        transparent,
        transparent 15px,
        rgba(255,255,255,0.03) 15px,
        rgba(255,255,255,0.03) 30px
    );
    pointer-events: none;
}

/* Floating Elements */
.floating-elements {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.floating-element {
    position: absolute;
    border-radius: 50%;
    animation: float 6s ease-in-out infinite;
}

.floating-element:nth-child(1) {
    top: 10%;
    left: 10%;
    width: 60px;
    height: 60px;
    background: linear-gradient(45deg, #ff9a9e 0%, #fecfef 100%);
    animation-delay: 0s;
}

.floating-element:nth-child(2) {
    top: 60%;
    right: 10%;
    width: 80px;
    height: 80px;
    background: linear-gradient(45deg, #a18cd1 0%, #fbc2eb 100%);
    animation-delay: 2s;
}

.floating-element:nth-child(3) {
    bottom: 20%;
    left: 50%;
    width: 40px;
    height: 40px;
    background: linear-gradient(45deg, #ffecd2 0%, #fcb69f 100%);
    animation-delay: 4s;
}

@keyframes float {
    0%, 100% {
        transform: translateY(0px) rotate(0deg);
    }
    33% {
        transform: translateY(-20px) rotate(120deg);
    }
    66% {
        transform: translateY(10px) rotate(240deg);
    }
}

/* Modern Card Styles */
.modern-card {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.modern-card-dark {
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 20px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

/* Interactive Elements */
.hover-glow:hover {
    box-shadow: 0 0 30px rgba(102, 126, 234, 0.6);
    transform: translateY(-2px);
    transition: all 0.3s ease;
}

.pulse-border {
    position: relative;
}

.pulse-border::before {
    content: '';
    position: absolute;
    inset: -2px;
    background: linear-gradient(45deg, #667eea, #764ba2, #667eea);
    border-radius: inherit;
    z-index: -1;
    animation: pulse-border 2s linear infinite;
}

@keyframes pulse-border {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* Responsive Design */
@media (max-width: 768px) {
    .floating-elements {
        display: none;
    }
    
    .bg-pattern-dots,
    .bg-pattern-grid,
    .bg-pattern-diagonal {
        opacity: 0.5;
    }
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
    .modern-card {
        background: rgba(0, 0, 0, 0.8);
        border-color: rgba(255, 255, 255, 0.1);
    }
}

/* Admin layout - clean background */
.bg-admin {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    position: relative;
}

/* Header - clean style */
.header-safline-pattern {
    position: relative;
}

/* Public layout background */
.bg-public {
    background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 50%, #f0f4ff 100%);
    position: relative;
}