.teaching-bubble-container {
    --teaching-bubble-foreground: var(--pxt-tertiary-foreground);
    --teaching-bubble-background: var(--pxt-tertiary-background);
}

.teaching-bubble-container.yellow {
    --teaching-bubble-foreground: var(--pxt-colors-yellow-foreground);
    --teaching-bubble-background: var(--pxt-colors-yellow-background);

    .ai-footer {
        opacity: 0.8;
        .ai-footer-text {
            color: var(--pxt-colors-yellow-foreground);
        }
        .feedback-button, .feedback-button.disabled {
            // Override the default disabled coloring
            color: var(--pxt-colors-yellow-foreground);
        }
    }
}

.teaching-bubble-container {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: @modalDimmerZIndex;
}

.teaching-bubble-cutout {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: @modalDimmerZIndex;
    box-shadow: 0 0 0 99999px var(--pxt-neutral-alpha20);
    border-radius: 0.5rem;
}

.teaching-bubble-cutout,
.teaching-bubble,
.teaching-bubble-arrow,
.teaching-bubble-arrow-outline {
    transition-property: top, left, width, height;
    transition-duration: 0.5s;
}

.teaching-bubble {
    position: fixed;
    max-width: 25rem;
    min-width: 18.75rem;
    background: var(--teaching-bubble-background);
    color: var(--teaching-bubble-foreground);
    box-shadow: 0 0 0 0.1rem;
    border-radius: 0.5rem;
    z-index: @modalDimmerZIndex;

    .common-button {
        &:focus {
            outline: 0.1rem solid var(--teaching-bubble-foreground);
            filter: grayscale(.15) brightness(.85) contrast(1.3);
        }
        &.tertiary:focus::after, &:focus::after {
            outline: none;
        }
    }
}

.teaching-bubble-arrow {
    position: fixed;
    width: 0;
    height: 0;
    z-index: @modalDimmerZIndex + 1;
    color: var(--teaching-bubble-background);
}

.teaching-bubble-arrow-outline {
    position: fixed;
    width: 0;
    height: 0;
    z-index: @modalDimmerZIndex;
    color: var(--teaching-bubble-foreground);
}

.teaching-bubble-body {
    padding: 1rem;
    font-size: 1.1rem;

    p {
        margin: 0.5rem 0;
    }
}

.teaching-bubble-navigation {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;

    .common-button.feedback-button {
        color: var(--teaching-bubble-foreground);
    }

    .teaching-bubble-steps {
        font-size: .9rem;
        color: var(--teaching-bubble-foreground);

        &.hide {
            visibility: hidden;
        }
    }

    .common-button.tertiary {
        padding: .25rem .5rem;
        margin: 0 .5rem 0 0;
        border: 0.1rem solid var(--teaching-bubble-foreground) !important;
        background: var(--teaching-bubble-background) !important;
        color: var(--teaching-bubble-foreground) !important;

        &.inverted {
            margin-right: 0;
            background: var(--teaching-bubble-foreground) !important;
            color: var(--teaching-bubble-background) !important;
        }
    }

    .common-button:focus-visible {
        outline: 2px solid var(--teaching-bubble-foreground);
        outline-offset: 3px;
    }

    &.no-steps {
        flex-direction: row-reverse;
    }
}

.teaching-bubble-footer {
    color: var(--pxt-neutral-alpha80);
    margin-top: 0.5rem;
    margin: 0; // negative margins compensate for the padding on the bubble
    padding: 0.5rem 1rem;
    border-top: 1px solid var(--pxt-neutral-alpha50);

    .ai-footer .feedback-button.disabled {
        // Override the default disabled coloring
        color: var(--pxt-neutral-alpha80);
    }
}

.teaching-bubble-close.common-button {
    position: absolute;
    right: 0.5rem;
    top: 0.5rem;
    padding: 0.5rem 0 0.25rem 0;
    background: transparent;
    color: var(--teaching-bubble-foreground);
    margin: 0;

    i.right {
        opacity: 1;
        font-size: 1.3rem;
        margin: 0;
    }
}
