/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallView {
    flex-grow: 1;
    min-height: 0;

    display: flex;
    flex-direction: column;

    background-color: $header-panel-bg-color;

    .mx_AppTile {
        width: auto;
        height: 100%;
        border: none;
        border-radius: inherit;
        background-color: $call-background;
    }

    /* While the lobby is shown, the widget needs to stay loaded but hidden in the background */
    .mx_CallView_lobby ~ .mx_AppTile {
        display: none;
    }

    .mx_CallView_lobby {
        min-height: 0;
        flex-grow: 1;
        padding: $spacing-12;
        color: $call-primary-content;
        background-color: $call-background;

        --facepile-background: $call-background;
        border-radius: 8px;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: $spacing-32;

        .mx_FacePile {
            width: fit-content;
            margin: $spacing-8 auto 0;
        }

        .mx_CallView_preview {
            position: relative;
            width: 100%;
            max-width: 800px;
            aspect-ratio: 1.5;
            background-color: $call-system;

            border-radius: 20px;
            overflow: hidden;

            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;

            .mx_BaseAvatar {
                margin: $spacing-20;

                /* Override the explicit dimensions on the element so that this gets sized responsively */
                width: unset !important;
                height: unset !important;
                min-width: 0;
                min-height: 0;
                flex: 0 1 200px;
            }

            video {
                position: absolute;
                top: 0;
                width: 100%;
                height: 100%;
                object-fit: cover;
                display: block;
                transform: scaleX(-1); /* flip the image */
                background-color: black;
            }

            .mx_CallView_controls {
                position: absolute;
                bottom: 0;
                left: 0;
                right: 0;

                background-color: $info-plinth-fg-color;

                display: flex;
                justify-content: center;
                gap: $spacing-24;

                .mx_CallView_deviceButtonWrapper {
                    position: relative;
                    margin: 6px 0 10px;

                    .mx_CallView_deviceButton {
                        $size: 50px;

                        width: $size;
                        height: $size;

                        background-color: $call-system;
                        border-radius: calc($size / 2);

                        &::before {
                            content: "";
                            display: inline-block;
                            mask-repeat: no-repeat;
                            mask-size: 20px;
                            mask-position: center;
                            background-color: $call-primary-content;
                            height: 100%;
                            width: 100%;
                        }

                        &.mx_CallView_deviceButton_audio::before {
                            mask-image: url("@vector-im/compound-design-tokens/icons/mic-on-solid.svg");
                            mask-size: 14px;
                        }

                        &.mx_CallView_deviceButton_video::before {
                            mask-image: url("@vector-im/compound-design-tokens/icons/video-call-solid.svg");
                        }
                    }

                    .mx_CallView_deviceListButton {
                        $size: 15px;

                        position: absolute;
                        bottom: 0;
                        right: -2.5px;
                        width: $size;
                        height: $size;

                        background-color: $call-system;
                        border-radius: calc($size / 2);

                        &::before {
                            content: "";
                            display: inline-block;
                            mask-image: url("@vector-im/compound-design-tokens/icons/chevron-down.svg");
                            mask-size: 20px;
                            mask-position: center;
                            background-color: $call-primary-content;
                            height: 100%;
                            width: 100%;
                        }
                    }

                    &.mx_CallView_deviceButtonWrapper_muted {
                        .mx_CallView_deviceButton,
                        .mx_CallView_deviceListButton {
                            background-color: $call-primary-content;

                            &::before {
                                background-color: $call-system;
                            }
                        }

                        .mx_CallView_deviceButton {
                            &.mx_CallView_deviceButton_audio::before {
                                mask-image: url("@vector-im/compound-design-tokens/icons/mic-off-solid.svg");
                                mask-size: 18px;
                            }

                            &.mx_CallView_deviceButton_video::before {
                                mask-image: url("@vector-im/compound-design-tokens/icons/video-call-off-solid.svg");
                            }
                        }
                    }
                }
            }
        }

        .mx_CallView_connectButton {
            padding-left: 50px;
            padding-right: 50px;
        }
    }
}
