// (C) 2024-2025 GoodData Corporation

@use "sass:color";
@use "variables" as variables;
@use "@gooddata/sdk-ui-kit/styles/scss/variables" as kit-variables;
@use "@gooddata/sdk-ui-kit/styles/scss/mixins" as kit-mixins;
@use "@gooddata/sdk-ui-kit/styles/scss/Form/mixins" as form-mixins;

//NOTE: Overriding default dialog styles for special
// behavior of GenAIChatOverlay component
.overlay.gd-dialog:not(.gd-dropdown).gd-gen-ai-chat__window {
    &--fullscreen {
        width: 80vw;
        max-width: 80vw;
    }

    @media #{kit-variables.$xsmall-only}, #{kit-variables.$small-only} {
        &--fullscreen {
            width: 100vw;
            max-width: 100vw;
            height: 100vh;
        }
    }
}

.gd-gen-ai-chat__window {
    width: 420px;
    height: calc(100vh - 84px);
    background-color: kit-variables.$gd-color-light;
    display: flex;
    flex-direction: column;
    //stylelint-disable-next-line declaration-no-important
    padding: 0 !important;
    //stylelint-disable-next-line declaration-no-important
    border-width: 1px !important;
    //stylelint-disable-next-line declaration-no-important
    border-radius: 3px !important;

    .gd-gen-ai-chat {
        // We need to subtract the height of the header
        height: calc(100% - 45px);
    }

    &--fullscreen {
        margin: 0;
        height: calc(100vh - 60px);

        .gd-gen-ai-chat__messages__visualization__wrapper {
            height: 300px;
        }
    }

    &--right {
        margin: 0 1em 1em 0;
    }

    &--left {
        margin: 0 0 1em 1em;
    }

    &__header {
        flex-shrink: 0;
        height: 45px;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 5px;
        margin: 0 5px;
    }

    &__header__gap {
        flex: 1;
    }
}

.gd-gen-ai-chat__inline {
    background: var(--gd-palette-complementary-0-from-theme, #fcfcfd);
    display: flex;
    flex-direction: column;
    width: 100%;

    .gd-gen-ai-chat {
        height: auto;
        flex-grow: 1;
        overflow: hidden;
    }
}
