.toast {
    --accent-color: color-mix(in oklab, var(--base-color) 80%, black 20%);

    z-index: 5;
    margin: 0;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    border-radius: 0.5rem;
    border: 1px solid var(--accent-color);
    line-height: 1.5;
    background-color: var(--base-color);
    color: white;
    font-weight: 500;

    svg {
        height: 1.5em;
    }

    &.toast--success {
        --base-color: var(--color-toast-success);
    }

    &.toast--error {
        --base-color: var(--color-toast-error);
    }

    &.toast--warning {
        --base-color: var(--color-toast-warning);
    }

    &.toast--info {
        --base-color: var(--color-toast-info);
    }

    .type {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .message {
        margin-block: 0;
        padding-block: 0;
        flex: 1;
    }

    .closer {
        display: grid;
        place-items: center;
        padding: 0.25rem;
        border-radius: 0.25rem;

        &:hover {
            background-color: var(--accent-color);
        }

        &:focus-visible {
            outline: 2px solid currentColor;
            outline-offset: 2px;
        }
    }
}
