/**
 * Toast flotante: esquinas redondeadas (no cápsula); exito (#006C0D) y error (granate de marca).
 */
:root {
    --alerta-toast-exito: #006c0d;
    --alerta-toast-exito-fondo: #e9f5eb;
    --alerta-toast-error-borde: var(--color-granate-active, #9a2d2d);
    --alerta-toast-error-fondo: color-mix(in srgb, var(--color-granate-active, #9a2d2d) 10%, var(--color-crema, #f7f3e8));
    --alerta-toast-z: 1075;
    --alerta-toast-radius: 1.125rem;
    --alerta-toast-progreso-duracion: 5s;
}

.alerta-toast {
    box-sizing: border-box;
    position: fixed;
    pointer-events: auto;
    right: calc(var(--space-4) + env(safe-area-inset-right, 0px));
    bottom: calc(var(--space-4) + env(safe-area-inset-bottom, 0px));
    left: auto;
    z-index: var(--alerta-toast-z);
    margin: 0;
    width: min(32rem, calc(100vw - var(--space-4) * 2 - env(safe-area-inset-right, 0px)));
    max-width: none;
    padding: 0.5rem 1.375rem;
    border-radius: var(--alerta-toast-radius);
    border: 1px solid transparent;
    background-clip: padding-box;
    font-family: var(--font-base);
    box-shadow: 0 0.25rem 1.25rem rgba(31, 30, 30, 0.1);
    overflow: hidden;
}

.alerta-toast__progreso {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    transform-origin: left center;
    background-color: var(--alerta-toast-exito);
}

.alerta-toast--error .alerta-toast__progreso {
    background-color: var(--alerta-toast-error-borde);
}

.alerta-toast:not(.alerta-toast--oculto) .alerta-toast__progreso {
    animation: alerta-toast-progreso var(--alerta-toast-progreso-duracion) linear forwards;
}

@keyframes alerta-toast-progreso {
    from {
        transform: scaleX(1);
    }
    to {
        transform: scaleX(0);
    }
}

.alerta-toast--oculto {
    display: none !important;
}

.alerta-toast__inner {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    min-height: 6rem;
}

.alerta-toast__icono {
    flex-shrink: 0;
    width: 6rem;
    height: 6rem;
    object-fit: contain;
}

.alerta-toast--exito .alerta-toast__icono--error {
    display: none;
}

.alerta-toast--error .alerta-toast__icono--exito {
    display: none;
}

.alerta-toast__cuerpo {
    flex: 1;
    min-width: 0;
}

.alerta-toast__titulo {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: 600;
    line-height: var(--leading-tight);
    color: var(--panel-heading-color, var(--color-text-default));
}

.alerta-toast__subtitulo {
    margin: 0.1875rem 0 0;
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    color: var(--color-text-muted);
}

.alerta-toast__subtitulo:empty {
    display: none;
}

.alerta-toast__cerrar {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.125rem;
    height: 3.125rem;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--panel-heading-color, var(--color-text-default));
    font-size: 1.375rem;
    line-height: 1;
    cursor: pointer;
    border-radius: var(--radius-sm);
}

.alerta-toast__cerrar:hover {
    opacity: 0.75;
}

.alerta-toast__cerrar:focus-visible {
    outline: var(--focus-ring-width) solid var(--alerta-toast-exito);
    outline-offset: var(--focus-ring-offset);
}

.alerta-toast--error .alerta-toast__cerrar:focus-visible {
    outline-color: var(--alerta-toast-error-borde);
}

.alerta-toast--exito {
    border-color: var(--alerta-toast-exito);
    background-color: var(--alerta-toast-exito-fondo);
}

.alerta-toast--error {
    border-color: var(--alerta-toast-error-borde);
    background-color: var(--alerta-toast-error-fondo);
}

[data-theme="dark"] .alerta-toast--exito {
    background-color: #16261c;
}

[data-theme="dark"] .alerta-toast--error {
    background-color: color-mix(in srgb, var(--color-danger, #c07070) 18%, #1e1a14);
}

@media (min-width: 48rem) {
    .alerta-toast {
        padding: 0.625rem 1.5rem;
    }

    .alerta-toast__inner {
        min-height: 6.25rem;
    }

    .alerta-toast__icono {
        width: 6.25rem;
        height: 6.25rem;
    }
}
