//-------------------------------------
// legacy: mail/public_livechat_window.scss
//-------------------------------------

$o-mail-thread-window-zindex: $zindex-modal + 1 !default;

.o_thread_window {
    direction: ltr;
    display: flex;
    flex-flow: column nowrap;
    position: fixed;
    width: $o-mail-thread-window-width;
    max-width: 100%;
    height: 460px;
    max-height: 100%;
    font-size: 12px;
    background-color: $o-mail-thread-window-bg;
    border-radius: 6px 6px 0 0;
    z-index: $o-mail-thread-window-zindex;
    box-shadow: -5px -5px 10px rgba(black, 0.18);

    @include media-breakpoint-down(md) {
        width: 100%;
        height: 100%!important;
        box-shadow: none;

        .o_frontend_to_backend_nav:not(.d-none) ~ & .o_thread_window_header {
            padding-left: 2rem;
        }

        &.o_folded {
            display: none;
        }
    }

    @media print {
        display: none;
    }

    .o_thread_window_header {
        align-items: center;
        display: flex;
        flex: 0 0 auto;
        color: white;
        padding: $o-mail-chatter-gap*0.5 $o-mail-chatter-gap;
        border-radius: 3px 3px 0 0;
        border-bottom: 1px solid map-get($grays, '300');
        background-color: $o-brand-odoo;
        padding: 8px;
        cursor: pointer;

        @include media-breakpoint-down(md) {
            align-items: center;
            height: $o-mail-chat-header-height;
            border-radius: 0px;
            .o_thread_window_title {
                font-size: 16px;
            }

            .o_thread_window_close {
                $o-close-font-size: 17px;
                padding: (($o-mail-chat-header-height - $o-close-font-size) / 2);
                font-size: $o-close-font-size;
                color: white;
            }
        }
        .o_thread_window_avatar {
            margin: -6px 6px -6px 0;
            position: relative;

            img {
                height: 25px;
                width: 25px;
                border-radius: 50%;
            }
            span {
                bottom: -4px;
                right: -2px;
                position: absolute;

                .fa-circle-o {
                    display: none;
                }
            }
        }

        .o_thread_window_title {
            flex: 1 1 auto;
            @include o-text-overflow;

            .o_mail_thread_typing_icon {
                padding-left: 2px;

                .o_mail_thread_typing_icon_dot {
                    background: map-get($grays, '300');
                }
            }
        }

        .o_thread_window_buttons {
            flex: 0 0 auto;
            .o_thread_window_close {
                color: white;
                padding: 0px 3px;
                margin-left: 5px;
                @include o-hover-opacity(0.7, 1);
            }
        }

    }

    .o_mail_thread {
        flex: 1 1 100%;
        overflow: auto;
        -webkit-overflow-scrolling: touch; // smooth scrolling in iOS app (Safari)

        .o_thread_date_separator {
            margin: 0px 0px 15px 0px;
            .o_thread_date {
                background-color: $o-mail-thread-window-bg;
            }
        }
        .o_thread_message {
            padding: 4px 5px;
            .o_thread_message_sidebar {
                margin-right: 5px;
            }
            .o_attachment {
                @include media-breakpoint-up(md) {
                    width: percentage(1/3);
                }
            }
        }
    }

    .o_thread_composer input {
        width: 100%;
    }
}

.o_thread_window_dropdown {
    width: auto;
    height: 28px;
    color: white;
    background-color: map-get($grays, '900');
    cursor: pointer;
    box-shadow: none;

    @include media-breakpoint-down(md) {
        display: none;
    }

    .o_thread_window_header {
        border-radius: 0;
    }

    .o_thread_window_dropdown_toggler {
        padding: 5px;

        .o_total_unread_counter {
            @include o-position-absolute(-10px, 0, auto, auto);
            background-color: $o-brand-primary;
            padding: 0 2px;
            font-size: smaller;
        }
    }
    &.show .o_thread_window_dropdown_toggler .o_total_unread_counter {
        display: none;
    }

    > ul {
        max-width: $o-mail-thread-window-width;
        padding: 0;

        > li.o_thread_window_header {
            font-size: 12px;
            padding: 3px 5px;
            &~li.o_thread_window_header {
                border-top: 1px solid white;
            }
            &:hover {
                background-color: darken($o-brand-odoo, 10%);
            }
        }
    }
}

.o_ui_blocked .o_thread_window {
    // We cannot put the z-index of thread windows directly to be greater than
    // blockUI's as ui-autocomplete dropdowns (which are below blockUI) would
    // appear under the thread windows (and ui-autocomplete is used to choose the
    // person you want to chat with). So we only raise the z-index value when
    // the ui is really blocked (in that case, the ui-autocomplete dropdowns
    // will disappear under the thread windows but this is not really an issue as
    // there should not be any at that time).
    z-index: 1101; // blockUI's z-index is 1100
}

//-------------------------------------
// legacy: mail/thread.scss
//-------------------------------------


.o_mail_thread_loading {
    display: flex;
    align-items: center;
    justify-content: center;
}

.o_mail_thread_loading_icon {
    margin-right: 5px;
}

.o_mail_thread, .o_mail_activity {
    .o_thread_show_more {
        text-align: center;
    }

    .o_mail_thread_content {
        display: flex;
        flex-direction: column;
        min-height: 100%;
    }

    .o_thread_bottom_free_space {
        height: 15px;
    }

    .o_thread_date_separator {
        margin-top: 15px;
        margin-bottom: 30px;
        @include media-breakpoint-down(md) {
            margin-top: 0px;
            margin-bottom: 15px;
        }
        border-bottom: 1px solid map-get($grays, '400');
        text-align: center;

        .o_thread_date {
            position: relative;
            top: 10px;
            margin: 0 auto;
            padding: 0 10px;
            font-weight: bold;
            background: white;
        }
    }

    .o_thread_new_messages_separator {
        margin-bottom: 15px;
        border-bottom: solid lighten($o-brand-odoo, 15%) 1px;
        text-align: right;
        .o_thread_separator_label {
            position: relative;
            top: 8px;
            padding: 0 10px;
            background: white;
            color: lighten($o-brand-odoo, 15%);
            font-size: smaller;
        }
    }

    .o_thread_message {
        display: flex;
        padding: 4px $o-horizontal-padding;
        margin-bottom: 0px;

        &.o_mail_not_discussion {
            background-color: rgba(map-get($grays, '300'), 0.5);
            border-bottom: 1px solid map-get($grays, '400');
        }

        .o_thread_message_sidebar {
            flex: 0 0 $o-mail-thread-avatar-size;
            margin-right: 10px;
            margin-top: 2px;
            text-align: center;
            font-size: smaller;
            .o_thread_message_sidebar_image {
                position: relative;
                height: $o-mail-thread-avatar-size;

                .o_updatable_im_status {
                    width: $o-mail-thread-avatar-size;
                }
                .o_mail_user_status {
                    position: absolute;
                    bottom: 0;
                    right: 0;

                    &.fa-circle-o {
                        display: none;
                    }
                }
            }

            @include media-breakpoint-down(md) {
                margin-top: 4px;
                font-size: x-small;
            }

            .o_thread_message_avatar {
                width: $o-mail-thread-avatar-size;
                height: $o-mail-thread-avatar-size;
                object-fit: cover;
            }
            .o_thread_message_side_date {
                display: none;
                margin-left: -5px;
            }
            .o_thread_message_star {
                display: none;
                margin-right: -5px;
            }

            .o_thread_message_side_date {
                opacity: 0;
            }
        }
        .o_thread_icon {
            cursor: pointer;
            opacity: 0;
            &.fa-star {
                opacity: $o-mail-thread-icon-opacity;
                color: gold;
            }
        }

        &:hover, &.o_thread_selected_message {
            .o_thread_message_side_date {
                display: inline-block;
                opacity: $o-mail-thread-side-date-opacity;
            }
            .o_thread_icon {
                display: inline-block;
                opacity: $o-mail-thread-icon-opacity;
                &:hover {
                    opacity: 1;
                }
            }
        }

        .o_mail_redirect {
            cursor: pointer;
        }

        .o_thread_message_core {
            flex: 1 1 auto;
            min-width: 0;
            max-width: 100%;
            word-wrap: break-word;
            > pre {
                white-space: pre-wrap;
                word-break: break-word;
                text-align: justify;
            }

            .o_mail_note_title {
                margin-top: 9px;
            }

            .o_mail_subject {
                font-style: italic;
            }

            .o_mail_notification {
                font-style: italic;
                color: gray;
            }

            [summary~=o_mail_notification] { // name conflicts with channel notifications, but is odoo notification buttons to hide in chatter if present
                display: none;
            }

            p {
                margin: 0 0 9px; // Required by the old design to override a general rule on p's
                &:last-child {
                    margin-bottom: 0;
                }
            }
            a {
                display: inline-block;
                word-break: break-all;
            }
            :not(.o_image_box) > img {
                max-width: 100%;
                height: auto;
            }

            .o_mail_body_long {
                display: none;
            }

            .o_mail_info {
                margin-bottom: 2px;

                strong {
                    color: $headings-color;
                }
            }

            .o_thread_message_star, .o_thread_message_needaction, .o_thread_message_reply, .o_thread_message_notification {
                padding: 4px;
            }

            .o_thread_message_notification {
                color: grey;
                &.o_thread_message_notification_error {
                    color: red;
                    opacity: 1;
                    cursor: pointer;
                }
            }

            .o_attachments_list, .o_attachments_previews {
                &:last-child {
                    margin-bottom: $grid-gutter-width;
                }
            }
        }
    }

    .o_thread_message .o_thread_message_core .o_mail_read_more {
        display: block;
    }
}

.o_web_client.o_touch_device {
    .o_mail_thread .o_thread_icon {
        opacity: $o-mail-thread-icon-opacity;
    }
}

// ------------------------------------------------------------------
// Thread typing icon: shared between discuss and chat windows
// ------------------------------------------------------------------

.o_mail_thread_typing_icon {
    position: relative;
    text-align: center;
    margin-left: auto;
    margin-right: auto;

    .o_mail_thread_typing_icon_dot {
        display: inline-block;
        width: 3px;
        height: 3px;
        border-radius: 50%;
        background: map-get($grays, '800');
        animation: o_mail_thread_typing_icon_dot 1.5s linear infinite;

        &:nth-child(2) {
            animation-delay: -1.35s;
        }

        &:nth-child(3) {
            animation-delay: -1.2s;
        }
    }
}

@keyframes o_mail_thread_typing_icon_dot {
    0%, 40%, 100% {
        transform: initial;
    }
    20% {
        transform: translateY(-5px);
    }
}

//-------------------------------------
// legacy: im_livechat/im_livechat.scss
//-------------------------------------

.o_livechat_button {
    position: fixed;
    right: 0;
    bottom: 0;
    margin-right: 12px;
    min-width: 100px;
    cursor: pointer;
    white-space: nowrap;
    background-color: rgba(60, 60, 60, 0.6);
    font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif;
    font-size: 14px;
    font-weight: bold;
    padding: 10px;
    color: white;
    text-shadow: rgb(59, 76, 88) 1px 1px 0px;
    border: 1px solid rgb(80, 80, 80);
    border-bottom: 0px;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    z-index: 5;
}

.o_thread_window {
    z-index: $zindex-modal - 9; // to go over the navbar
    .o_thread_date_separator {
        display: none;
    }

    .btn {
        color: #FFFFFF;
        background-color: #30908e;
        border-color: #2d8685;
        border: 1px solid transparent;
    }

    .btn-sm {
        padding: 0.0625rem 0.3125rem;
        font-size: 0.75rem;
        line-height: 1.5;
        border-radius: 0.2rem;
    }

    .o_livechat_rating {
        /* Livechat Rating : feedback smiley */
        flex: 1 1 auto;
        overflow: auto;
        padding: 15px;
        font-size: 14px;

        .o_livechat_email {
            font-size: 12px;
            > div {
                display: flex;
                padding: 5px 0;
                input {
                    display: block;
                    width: 100%;
                    height: calc(1.5em + 0.75rem + 2px);
                    padding: 0.375rem 0.75rem;
                    font-size: 0.875rem;
                    font-weight: 400;
                    line-height: 1.5;
                    color: #495057;
                    background-color: #FFFFFF;
                    background-clip: padding-box;
                    border: 1px solid #CED4DA;
                }
                button {
                    display: inline-block;
                    font-weight: 400;
                    text-align: center;
                    vertical-align: middle;
                    user-select: none;
                    padding: 0.375rem 0.75rem;
                    font-size: 0.875rem;
                    line-height: 1.5;
                }
            }
        }

        .o_livechat_no_feedback {
            text-decoration: underline;
            cursor: pointer;
            margin: 20px 0;
        }

        .o_livechat_rating_box {
            margin: 40px 0 30px 0;
        }

        .o_livechat_rating_choices {
            margin: 10px 0;

            > img {
                width: 65px;
                opacity: 0.60;
                cursor: pointer;
                margin: 10px;
                &:hover, &.selected {
                    opacity: 1;
                }
            }
        }

        /* feedback reason */
        .o_livechat_rating_reason {
            margin: 10px 0px 25px 0px;
            display: none; /* hidden by default */

            > textarea {
                width: 100%;
                height: 70px;
                resize: none;
            }
        }

        .o_livechat_rating_reason_button > button {
            float: right;
        }
    }

    .o_composer_text_field {
        line-height: 1.3em;
    }
}

.o_livechat_operator_avatar {
    padding-right: 8px;
}

.o_livechat_no_rating {
    opacity: 0.5;
}

.o_PublicLivechatMessage {
    display: flex;
    position: relative;
    
    &.o-isVisitorTheAuthor {
        flex-direction: row-reverse !important;
    }
}

.o_PublicLivechatMessage_content {
    word-break: break-word;
    word-wrap: break-word;
}

.o_PublicLivechatMessage_header {
    display: flex;
    align-items: center;

    &.o-isVisitorTheAuthor {
        justify-content: flex-end !important;
    }
}

.o_PublicLivechatMessage_headerAuthor {
    margin-right: map-get($spacers, 2);
}

.o_PublicLivechatMessage_headerDate {
    opacity: 50%;
}

.o_PublicLivechatMessage_headerDatePrefix {
    opacity: 50%;
    margin-right: map-get($spacers, 1) / 2;
}

.o_PublicLivechatMessage_bubbleWrap {
    display: flex;
    position: relative;
    align-items: flex-start;

    &.o-isVisitorTheAuthor {
        justify-content: flex-end;
        margin-left: map-get($spacers, 4);
    }
    
    &.o-isOperatorTheAuthor {
        margin-right: map-get($spacers, 4);
    }
}

.o_PublicLivechatMessage_bubble {
    position: relative;

    &.o-isContentNonEmpty {
        padding: map-get($spacers, 4) / 2;
    }

    &.o-isVisitorTheAuthor {
        margin-left: map-get($spacers, 2);
    }
    
    &.o-isOperatorTheAuthor {
        margin-right: map-get($spacers, 2);
    }

}

.o_PublicLivechatMessage_background {
    position: absolute;
    z-index: -1;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transition: opacity .5s ease-out;
    margin-right: map-get($spacers, 5);
    border-bottom-right-radius: 0.6rem !important;
    border-bottom-left-radius: 0.6rem !important;
    border: 1px solid #C9CCD2 !important;

    &.o-isVisitorTheAuthor {
        border-bottom-left-radius: 0.6rem !important;
        border-top-left-radius: 0.6rem !important;
        opacity: 50%;
        border-color: #198754 !important;
        background-color: rgba(40, 167, 69, 0.5) !important;
        color: #000;
        opacity: 25%;
    }

    &.o-isOperatorTheAuthor {
        border-top-right-radius: 0.6rem !important;
        border-bottom-right-radius: 0.6rem !important;
        border-color: #17a2b8 !important;
        background-color: rgba(23, 162, 184, 0.5) !important;
        color: #000;
        opacity: 15%
    }
}

.o_PublicLivechatWindow_composer {
    padding: map-get($spacers, 2);
    outline: none;
    border: 0;
    border-top: 1px solid lightgray;
}
