/* Base alert styles */
.alert {
    text-align: center;
    padding: 1rem 1.25rem;
    margin: 1rem auto;
    border-radius: 0.375rem;
    max-width: 50%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: opacity 0.3s ease-in-out;
}

/* Success message */
.alert-success {
    background-color: #d1e7dd;
    border: 1px solid #badbcc;
    color: #0f5132;
}

/* Info message */
.alert-info {
    background-color: #cff4fc;
    border: 1px solid #b6effb;
    color: #055160;
}

/* Warning message */
.alert-warning {
    background-color: #fff3cd;
    border: 1px solid #ffecb5;
    color: #664d03;
}

/* Error/Danger message */
.alert-error,
.alert-danger {
    background-color: #f8d7da;
    border: 1px solid #f5c2c7;
    color: #842029;
}

/* Debug message */
.alert-debug {
    background-color: #e2e3e5;
    border: 1px solid #d3d6d8;
    color: #41464b;
}

/* Close button hover effect */
.alert .btn-close:hover {
    opacity: 0.75;
}

/* Fade animation enhancement */
.alert.fade.show {
    opacity: 1;
}

.alert.fade {
    opacity: 0;
    transition: opacity 0.25s linear;
}