/**
 * DucorMall — layout flash toasts
 */
.dm-toast-stack {
    position: fixed;
    top: max(1rem, env(safe-area-inset-top, 0px));
    right: max(1rem, env(safe-area-inset-right, 0px));
    z-index: 1080;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    width: min(22rem, calc(100vw - 2rem));
    pointer-events: none;
}

.dm-toast {
    --dm-toast-bg: #fff;
    --dm-toast-border: #e2e8f0;
    --dm-toast-accent: var(--dm-primary, #0f766e);
    --dm-toast-text: #0f2d42;
    --dm-toast-icon-bg: rgba(15, 118, 110, 0.12);
    --dm-toast-icon-color: var(--dm-primary, #0f766e);

    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: start;
    gap: 0.75rem;
    padding: 0.9rem 0.85rem 0.9rem 0.9rem;
    border-radius: 14px;
    border: 1px solid var(--dm-toast-border);
    background: var(--dm-toast-bg);
    color: var(--dm-toast-text);
    box-shadow:
        0 4px 6px rgba(15, 45, 66, 0.04),
        0 16px 40px rgba(15, 45, 66, 0.12);
    pointer-events: auto;
    opacity: 0;
    transform: translateX(1.25rem) scale(0.96);
    transition:
        opacity 0.28s ease,
        transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: calc(var(--dm-toast-index, 0) * 60ms);
}

.dm-toast.is-visible {
    opacity: 1;
    transform: translateX(0) scale(1);
}

.dm-toast.is-leaving {
    opacity: 0;
    transform: translateX(1rem) scale(0.96);
    transition-duration: 0.2s;
}

.dm-toast--success {
    --dm-toast-accent: #059669;
    --dm-toast-icon-bg: #ecfdf5;
    --dm-toast-icon-color: #059669;
    --dm-toast-border: #a7f3d0;
}

.dm-toast--error {
    --dm-toast-accent: #dc2626;
    --dm-toast-icon-bg: #fef2f2;
    --dm-toast-icon-color: #dc2626;
    --dm-toast-border: #fecaca;
}

.dm-toast--warning {
    --dm-toast-accent: #d97706;
    --dm-toast-icon-bg: #fffbeb;
    --dm-toast-icon-color: #d97706;
    --dm-toast-border: #fde68a;
}

.dm-toast--info {
    --dm-toast-accent: #2563eb;
    --dm-toast-icon-bg: #eff6ff;
    --dm-toast-icon-color: #2563eb;
    --dm-toast-border: #bfdbfe;
}

.dm-toast::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    border-radius: 14px 0 0 14px;
    background: var(--dm-toast-accent);
}

.dm-toast {
    position: relative;
    overflow: hidden;
}

.dm-toast__icon {
    display: grid;
    place-items: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 10px;
    background: var(--dm-toast-icon-bg);
    color: var(--dm-toast-icon-color);
    flex-shrink: 0;
}

.dm-toast__text {
    margin: 0.15rem 0 0;
    font-family: "Plus Jakarta Sans", "DM Sans", sans-serif;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.45;
    color: var(--dm-toast-text);
}

.dm-toast__close {
    display: grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    margin: -0.15rem -0.1rem 0 0;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    transition:
        background 0.15s ease,
        color 0.15s ease;
}

.dm-toast__close:hover {
    background: rgba(15, 45, 66, 0.06);
    color: var(--dm-toast-text);
}

@media (max-width: 575.98px) {
    .dm-toast-stack {
        left: max(1rem, env(safe-area-inset-left, 0px));
        right: max(1rem, env(safe-area-inset-right, 0px));
        width: auto;
    }

    .dm-toast {
        transform: translateY(-0.75rem) scale(0.98);
    }

    .dm-toast.is-visible {
        transform: translateY(0) scale(1);
    }

    .dm-toast.is-leaving {
        transform: translateY(-0.5rem) scale(0.98);
    }
}
