// = Onboarding Panel
// ============================================================================
$o-onboarding-step-width: map-get($container-max-widths, 'lg') / 4 !default;

.o_onboarding_container {
    transition: height 0.4s;

    &.o-vertical-slide-enter, &.o-vertical-slide-leave {
        height: 0 !important;
        * {
            display: none;
        }
    }
}

.o_onboarding_main {
    background: linear-gradient(0deg, #{$o-gray-200} 0%, #{$o-gray-100} 100%);

    .o_onboarding_wrap {
        overflow-x: auto;
    }

    .o_onboarding_completed_message {
        opacity: 0;
        box-shadow: 0 -7px 20px -5px rgba(#000, 0.3);
        animation: o_onboarding_slideInUpDownOut;
        animation-duration: 6s;
    }
    
    // !important required for compatibility (z-index-1 in xml)
    .o_onboarding_btn_close {
        z-index: 2 !important;
    }

    // = Step Design
    // ------------------------------------------------------------------------
    .o_onboarding_step {
        flex: 1 1 0;

        @for $i from 1 through 5 {
            &.o_onboarding_step__todo:nth-child(#{$i}) {
                @include print-variable('o-onboarding-animation-delay', $i * .15s);
            }
        }

        &:first-child, &:last-child {
            .o_onboarding_line {
                width: $o-onboarding-line-width / 2 ;
            }
        }

        &:first-child {
            .o_onboarding_line {
                margin-left: $o-onboarding-line-width / 2;
            }
        }

        &:last-child {
            .o_onboarding_line {
                margin-right: $o-onboarding-line-width / 2;
            }
        }

        .o_onboarding_line {
            background: linear-gradient(to right, $o-onboarding-color-orange 0%, $o-onboarding-color-blue 100%);
            height: $o-onboarding-line-height;
            width: $o-onboarding-line-width;
            top: $o-onboarding-image-size / 2;
            background-attachment: fixed;
        }

        .o_onboarding_step_content {
            width: $o-onboarding-step-width;
        }

        .o_onboarding_step_side img {            
            width: $o-onboarding-image-size;
            height: $o-onboarding-image-size;
        }

        .o_onboarding_step_action {
            min-width: $o-onboarding-step-width * .5;
            border: $border-width solid #{$o-onboarding-color-blue};
            color: $o-onboarding-color-blue;
        }

        .o_onboarding_step_action__done {
            i {
                background-color: $o-onboarding-color-orange;
                color: #FFF;
            }
        }

        // = "To do" Step Design
        // --------------------------------------------------------------------
        &[data-step-state="not_done"] {
            .o_onboarding_step_content_info {
                animation: o_onboarding_zoomIn ($o-onboarding-base-time * 1.5) both;
                animation-delay: var(--o-onboarding-animation-delay, 0);
            }

            .o_onboarding_step_action {
                animation: o_onboarding_slideInUp ($o-onboarding-base-time * 2) both;
                animation-delay: var(--o-onboarding-animation-delay, 0);
            }
        }

        // = "Just Done" Step Design
        // --------------------------------------------------------------------
        &[data-step-state="just_done"] {
            .o_onboarding_step_content_info {
                animation: o_onboarding_fadeIn ($o-onboarding-base-time * 3);
            }

            .o_onboarding_step_action__done {
                animation: bounceIn ($o-onboarding-base-time * 2);
            }

            .o_onboarding_confetti {
                animation: o_onboarding_fadeInOut ($o-onboarding-base-time * 3) ease 0s 1 forwards;
            }
        }
    }

    // = Animations
    // ------------------------------------------------------------------------
    @keyframes o_onboarding_slideInUp {
        from {
            transform: translate3d(0, 20%, 0);
            opacity: 0;
        }
    }

    @keyframes o_onboarding_slideInUpDownOut {
        25%, 85% { transform: translate3d(0, -80%, 0); opacity: 1; }
        0%, 100% { transform: translate3d(0, 0, 0); }
    }

    @keyframes o_onboarding_zoomIn {
        from {
            transform: scale3d(0.8, 0.8, 0.8);
            opacity: 0;
        }
        50% {
            opacity: 1;
        }
    }

    @keyframes o_onboarding_fadeIn {
        10%, 66% { opacity: 0; }
        0%, 100% { opacity: 1; }
    }

    @keyframes o_onboarding_fadeInOut {
        10%, 66% { opacity: 1; }
        0%, 100% { opacity: 0; }
    }
}
