:root {
    --Q-toast-container-top: 5rem;
    --Q-toast-container-right: var(--Q-app-spacing-2);
    --Q-toast-container-bottom: 5rem;
    --Q-toast-container-left: var(--Q-app-spacing-2);
    --Q-toast-container-max-height: 30vh;
    --Q-toast-container-max-width: 50vw;
    --Q-toast-container-max-height-mobile: 50vh;
    --Q-toast-container-max-width-mobile: 95vw;
    --Q-toast-container-padding: 0 var(--Q-app-spacing-2) var(--Q-app-spacing-4) var(--Q-app-spacing-2);

    --Q-toast-card-timeout-ms: 5000ms;
    --Q-toast-card-margin: var(--Q-app-spacing-2) 0;
    --Q-toast-card-padding: var(--Q-app-spacing-3);
    --Q-toast-card-background: var(--Q-app-background-4);
    --Q-toast-card-border-radius: var(--Q-app-item-border-radius);
    --Q-toast-card-box-shadow: 0.1rem 0.3rem 0.5rem 0.1rem var(--Q-app-box-shadow-color);
    --Q-toast-card-border-standard: var(--Q-app-spacing-4) solid var(--Q-app-item-color-standard);
    --Q-toast-card-border-green: var(--Q-app-spacing-4) solid var(--Q-app-item-color-green);
    --Q-toast-card-border-orange: var(--Q-app-spacing-4) solid var(--Q-app-item-color-orange);
    --Q-toast-card-border-red: var(--Q-app-spacing-4) solid var(--Q-app-item-color-red);

    --Q-toast-header-margin: 0 var(--Q-app-spacing-3) 0 0;
    --Q-toast-image-color: var(--Q-app-font-color-1);
    --Q-toast-image-size: 3rem;
    --Q-toast-title-margin: 0 0 var(--Q-app-spacing-1) 0;
    --Q-toast-title-font-family: var(--Q-app-font-family-headers);
    --Q-toast-title-font-color: var(--Q-app-font-color-1);
    --Q-toast-subtitle-margin: 0;
    --Q-toast-subtitle-font-family: var(--Q-app-font-family);
    --Q-toast-subtitle-font-color: var(--Q-app-font-color-2);
}

/* Container */

.Q-toast-container {
    position: absolute;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow-y: hidden;
    max-height: var(--Q-toast-container-max-height);
    max-width: var(--Q-toast-container-max-width);
    padding: var(--Q-toast-container-padding);
    background-color: transparent;
    z-index: 700;
    transform: translateX(-50%);
}

.Q-toast-container-right {
    right: var(--Q-toast-container-right);
    left: unset;
    align-items: flex-end;
    transform: none;
}

.Q-toast-container-left {
    left: var(--Q-toast-container-left);
    right: unset;
    align-items: flex-start;
    transform: none;
}

.Q-toast-container-top {
    top: var(--Q-toast-container-top);
    bottom: unset;
    justify-content: flex-start;
}

.Q-toast-container-bottom {
    top: unset;
    bottom: var(--Q-toast-container-bottom);
    justify-content: flex-end;
}

/* Card */

.Q-toast-card {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
    border-radius: var(--Q-toast-card-border-radius);
    background: var(--Q-toast-card-background);
    margin: var(--Q-toast-card-margin);
    padding: var(--Q-toast-card-padding);
    opacity: 0;
    box-shadow: var(--Q-toast-card-box-shadow);
    animation: flashToast var(--Q-toast-card-timeout-ms) linear forwards;
}

.Q-toast-card.Q-toast-card-standard {
    border-left: var(--Q-toast-card-border-standard);
}

.Q-toast-card.Q-toast-card-success {
    border-left: var(--Q-toast-card-border-green);
}

.Q-toast-card.Q-toast-card-warning {
    border-left: var(--Q-toast-card-border-orange);
}

.Q-toast-card.Q-toast-card-error {
    border-left: var(--Q-toast-card-border-red);
}

/* Header */

.Q-toast-header {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: var(--Q-toast-header-margin);
}

.Q-toast-header svg, .Q-toast-header img {
    color: var(--Q-toast-image-color);
    height: var(--Q-toast-image-size);
    width: var(--Q-toast-image-size);
}

/* Body */

.Q-toast-title {
    margin: var(--Q-toast-title-margin);
    font-family: var(--Q-toast-title-font-family);
    color: var(--Q-toast-title-font-color);
}

.Q-toast-subtitle {
    margin: var(--Q-toast-subtitle-margin);
    font-family: var(--Q-toast-subtitle-font-family);
    color: var(--Q-toast-subtitle-font-color);
}

/* Animations */

@keyframes flashToast {
    0% {
        opacity: 0;
    }
    5% {
        opacity: 1;
    }
    80% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

/* Media */

@media only screen and (max-width: 600px) {

    .Q-toast-container, .Q-toast-container.Q-toast-container-right, .Q-toast-container.Q-toast-container-left {
        max-height: var(--Q-toast-container-max-height-mobile);
        max-width: var(--Q-toast-container-max-width-mobile);
        width: var(--Q-toast-container-max-width-mobile);
    }

}