/* Django Messages Framework Styling */

.messages-wrapper {
    margin-bottom: 2rem;
    animation: slideInDown 0.5s ease-out;
}

/* Base alert styling */
.messages-wrapper .alert {
    border-radius: 0.5rem;
    border: none;
    padding: 1rem 1.25rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    margin-bottom: 1rem;
    font-size: 0.95rem;
    line-height: 1.5;
    transition: all 0.3s ease;
}

/* Icon sizing and alignment */
.messages-wrapper .alert i {
    font-size: 1.25rem;
    min-width: 1.5rem;
}

/* Alert styling for different message types */

/* Success alerts */
.messages-wrapper .alert-success {
    background-color: #d4edda;
    color: #155724;
    border-left: 4px solid #28a745;
}

.messages-wrapper .alert-success i {
    color: #28a745;
}

.messages-wrapper .alert-success .btn-close {
    filter: invert(0.5);
}

/* Error/Danger alerts */
.messages-wrapper .alert-danger {
    background-color: #f8d7da;
    color: #721c24;
    border-left: 4px solid #dc3545;
}

.messages-wrapper .alert-danger i {
    color: #dc3545;
}

.messages-wrapper .alert-danger .btn-close {
    filter: invert(0.5);
}

/* Warning alerts */
.messages-wrapper .alert-warning {
    background-color: #fff3cd;
    color: #856404;
    border-left: 4px solid #ffc107;
}

.messages-wrapper .alert-warning i {
    color: #ff9800;
}

.messages-wrapper .alert-warning .btn-close {
    filter: invert(0.5);
}

/* Info alerts */
.messages-wrapper .alert-info {
    background-color: #d1ecf1;
    color: #0c5460;
    border-left: 4px solid #17a2b8;
}

.messages-wrapper .alert-info i {
    color: #17a2b8;
}

.messages-wrapper .alert-info .btn-close {
    filter: invert(0.5);
}

/* Close button styling */
.messages-wrapper .alert .btn-close {
    padding: 0.25rem;
    margin-left: 1rem;
    opacity: 0.7;
    transition: opacity 0.2s ease;
}

.messages-wrapper .alert .btn-close:hover {
    opacity: 1;
}

/* Hover effects */
.messages-wrapper .alert:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}

/* Animation for message entrance */
@keyframes slideInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Animation for message dismissal */
@keyframes slideOutUp {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-20px);
    }
}

/* Apply slide out animation when alert is closing */
.messages-wrapper .alert.fade:not(.show) {
    animation: slideOutUp 0.3s ease-out;
}

/* Responsive design */
@media (max-width: 768px) {
    .messages-wrapper {
        margin-bottom: 1.5rem;
    }
    
    .messages-wrapper .alert {
        padding: 0.875rem 1rem;
        font-size: 0.9rem;
    }
    
    .messages-wrapper .alert i {
        font-size: 1.1rem;
    }
    
    .messages-wrapper .alert .btn-close {
        margin-left: 0.75rem;
    }
}

/* Accessibility improvements */
.messages-wrapper .alert[role="alert"] {
    position: relative;
}

/* Dark mode support (if you implement dark mode in the future) */
@media (prefers-color-scheme: dark) {
    .messages-wrapper .alert-success {
        background-color: rgba(40, 167, 69, 0.2);
        color: #90ee90;
        border-left-color: #28a745;
    }
    
    .messages-wrapper .alert-danger {
        background-color: rgba(220, 53, 69, 0.2);
        color: #ff6b6b;
        border-left-color: #dc3545;
    }
    
    .messages-wrapper .alert-warning {
        background-color: rgba(255, 193, 7, 0.2);
        color: #ffb300;
        border-left-color: #ffc107;
    }
    
    .messages-wrapper .alert-info {
        background-color: rgba(23, 162, 184, 0.2);
        color: #00bcd4;
        border-left-color: #17a2b8;
    }
}
