html,
body {
    height: 100%;
}

body {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 40px;
    padding-bottom: 40px;
    background-color: #f5f5f5;
}

.form-signin {
    width: 100%;
    max-width: 330px;
    padding: 15px;
    margin: auto;
}

.form-signin .checkbox {
    font-weight: 400;
}

.form-signin .form-control {
    position: relative;
}
.form-signin .form-group.email {
    margin-bottom: -1px !important;
}
.form-signin .form-floating:focus-within {
    z-index: 2;
}

.form-signin input[type="email"] {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
}

.form-signin input[type="password"] {
    margin-bottom: 10px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

/* =========================================
   Alertas Personalizadas (Formularios)
   ========================================= */

/* Éxito (Verde) */
.alert-success {
    background: #eaf7f0;
    border-left: 4px solid #28a745;
    border-radius: var(--sp-radius-btn);
    color: #1a6633;
    padding: 1rem 1.25rem;
    font-size: 0.92rem;
    margin-bottom: 1.25rem;
}

/* Error (Rojo) */
.alert-danger {
    background: #fff4f4;
    border-left: 4px solid #dc3545;
    border-radius: var(--sp-radius-btn);
    color: #9b1c1c;
    padding: 1rem 1.25rem;
    font-size: 0.92rem;
    margin-bottom: 1.25rem;
}

/* Información (Azul) */
.alert-info {
    background: #eef5fb;
    border-left: 4px solid #0d6efd;
    border-radius: var(--sp-radius-btn);
    color: #0a3d70;
    padding: 1rem 1.25rem;
    font-size: 0.92rem;
    margin-bottom: 1.25rem;
}

/* Advertencia (Amarillo/Naranja) */
.alert-warning {
    background: #fff9e6;
    border-left: 4px solid #ffc107;
    border-radius: var(--sp-radius-btn);
    color: #856404;
    padding: 1rem 1.25rem;
    font-size: 0.92rem;
    margin-bottom: 1.25rem;
}

.custom-alert-close {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    line-height: 1;
    font-size: 1rem;
    opacity: 0.7;
}

.custom-alert-close:hover {
    opacity: 1;
}

/* Color heredado del contenedor padre */
.alert-danger .custom-alert-close {
    color: #9b1c1c;
}
.alert-info .custom-alert-close {
    color: #1e40af;
}
.alert-success .custom-alert-close {
    color: #166534;
}
.alert-warning .custom-alert-close {
    color: #92400e;
}
