.popover {
    width: auto;
    max-width: 100%;

    hr {
        margin-top: 5px;
        margin-bottom: 5px;
    }

    .sub_disable_btn_hint {
        padding-left: 5px;
        padding-right: 5px;
        font-size: small;
        text-align: justify;
    }
}

.popover-content {
    padding: 5px 0;
}

.popover-title {
    overflow-x: hidden;
    text-overflow: ellipsis;
    text-align: center;

    font-size: inherit;
    line-height: inherit;

    &:empty {
        display: none;
    }
}

.popover_info {
    text-align: center;
}

.sp-container {
    z-index: 106;
}

.streams_popover {
    .topic-name {
        text-align: center;
        margin-top: 5px;
        margin-bottom: 5px;
    }

    .colorpicker-container {
        display: none;
        margin-right: 10px;

        .sp-container {
            background-color: hsl(0, 0%, 100%);
            cursor: pointer;
            border: none;

            .sp-palette-container {
                border-right: none;
            }

            input {
                box-sizing: inherit; /* IE */
                box-sizing: initial;

                width: calc(100% - 13px);
            }

            button {
                background-color: hsl(0, 0%, 100%);
                background-image: none;
                border: 1px solid hsl(0, 0%, 80%);
                border-radius: 4px;
                color: hsl(0, 0%, 25%);
                font-size: 12px;
                padding: 6px;
                text-transform: capitalize;
                text-align: center;
                text-shadow: none;
            }

            .sp-picker-container {
                border-left: solid 1px hsl(0, 0%, 88%);
            }
        }
    }

    .popover_sub_unsub_button {
        margin-top: 0;
        float: none;
    }
}

ul {
    &.info_popover_actions i,
    &.actions_popover i,
    &.streams_popover i,
    &.topics_popover i {
        display: inline-block;
        width: 14px;
        text-align: center;
        margin-right: 3px;
    }

    &.topics_popover {
        .topic-name {
            text-align: center;
            margin-top: 5px;
            margin-bottom: 5px;

            .fa-chevron-right {
                font-size: 12px;
            }
        }
    }

    &.info_popover_actions i.fa-edit {
        vertical-align: middle;
    }
}

.user_popover {
    width: 240px;

    margin: -14px;
    padding: 0;

    .popover-title {
        padding: 0;
        border-color: hsla(0, 0%, 0%, 0.2);
    }

    .popover_info li {
        word-wrap: break-word;
    }
}

.message-info-popover,
.user-info-popover {
    width: 240px;
    padding: 0;

    .popover-title {
        padding: 0;
        border-color: hsla(0, 0%, 0%, 0.2);
    }
}

.group-info-popover {
    .manage-group a {
        text-align: center;
    }

    .group-info {
        text-align: center;

        .group-name {
            font-weight: bold;
        }
    }

    .member-list {
        position: relative;
        max-height: 300px;
        overflow-y: auto;
        list-style: none;
        margin-left: 0;

        .bot {
            color: hsl(180, 5%, 74%);
            vertical-align: top;
            width: 20px;
            padding-top: 3.5px;
            text-align: center;
        }
    }
}

.popover_user_presence {
    width: 8px;
    height: 8px;
    margin: 0 5px;
    display: inline-block;
    float: initial;
    position: relative;
    top: 1px;
}

.bot-owner-name {
    text-decoration: underline;

    &:hover {
        cursor: pointer;
        color: hsl(200, 100%, 40%);
    }
}

.popover-avatar {
    height: 240px;
    width: 240px;
    background-size: cover;
    background-position: center;
    position: relative;

    &.guest-avatar::after {
        outline: 10px solid hsl(0, 0%, 100%);
    }

    .popover-inner {
        width: 240px;
    }
}

#user-profile-modal {
    .modal__body {
        box-sizing: border-box;
        height: 60vh;
        padding-left: 16px;
        padding-right: 16px;
    }

    .modal__close {
        float: right;
        margin: 0;
    }

    #tab-toggle {
        font-weight: initial;
        margin: 6px 4px 6px 0;
        width: 100%;

        .tab-switcher {
            margin-left: 2px;
        }
    }

    .name {
        color: hsl(0, 0%, 20%);
        display: inline-block;
        min-width: 120px;
        font-weight: 600;
    }

    #exit-sign {
        font-size: 1.5rem;
        line-height: 1;
    }

    #avatar {
        display: inline-block;
        height: 180px;
        width: 180px;
        background-size: cover;
        background-position: center;
        border-radius: 5px;
        margin-right: 10px;
        border: 1px solid hsla(0, 0%, 0%, 0.2);

        &.guest-avatar::after {
            outline: 9px solid hsl(0, 0%, 100%);
        }
    }

    #name {
        font-size: 26px;
        font-weight: 700;
        margin-bottom: 5px;
        max-width: 100%;
        text-align: center;
        line-height: 30px;

        #edit-button {
            font-size: 18px;
            margin-left: 10px;
        }
    }

    #default-section {
        display: inline-block;
        vertical-align: top;

        .default-field {
            margin-bottom: 5px;
        }

        #date-joined {
            margin-bottom: 15px;
        }
    }

    hr {
        border: 1px solid hsl(0, 0%, 93%);
        margin: 5px 0;
    }

    #content {
        margin-top: 10px;

        .field-section {
            margin-top: 8px;

            .name {
                color: hsl(0, 0%, 20%);
                font-weight: 600;
            }

            &[data-type="2"] .value {
                overflow-wrap: break-word;
            }
        }
    }

    &.no-fields {
        hr,
        #content {
            display: none;
        }
    }

    &:not(.no-fields) {
        #body {
            padding-bottom: 10px;
            padding-top: 4px;
            margin-top: 10px;
        }
    }

    .tab-data {
        .active {
            display: block;
        }

        margin-bottom: 20px;
    }

    #user-profile-streams-tab {
        .stream_list_info {
            margin-bottom: 8px;
        }

        .stream-privacy {
            display: inline-block;
        }

        .filter-icon i {
            padding-right: 3px;
        }
    }

    .stream-list-top-section {
        display: flex;

        .stream-list-header {
            margin: 0;
            display: inline-block;
            font-weight: inherit;
        }

        .stream-search {
            margin-left: auto;
            align-self: center;
            padding-right: 20px;
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
        }

        #clear_stream_search {
            display: none;
            padding: 5px 8px 5px 4px;
            position: relative;
            right: 0;
        }
    }

    .subscription-group-list,
    .subscription-stream-list {
        position: relative;
        border: 1px solid hsl(0, 0%, 83%);
        border-radius: 4px;
        overflow: auto;
        text-align: left;
        margin-bottom: 5px;
        -webkit-overflow-scrolling: touch;

        .user-stream-list,
        .user-group-list {
            width: 100%;
            margin: auto;
            border-radius: 6px;

            tr {
                border-bottom: 1px solid hsl(0, 0%, 87%);

                &:last-of-type {
                    border-bottom: none;
                }

                td {
                    padding: 4px 0;

                    &:first-of-type {
                        padding-left: 10px;
                    }

                    &:last-of-type {
                        padding-right: 10px;
                    }

                    &.remove_subscription {
                        text-align: right;
                    }
                }
            }

            tbody:empty::after,
            &:empty::after {
                content: attr(data-empty);
                display: block;

                text-align: center;
                color: hsl(0, 0%, 67%);
            }

            &:empty {
                display: block;
                padding: 5px;
            }
        }
    }
}

@media (width < $md_min) {
    .message-info-popover,
    .user-info-popover {
        display: flex !important;
        justify-content: center;
        align-items: center;

        /* these are to override JS embedded inline styles. */
        top: 0 !important;
        left: 0 !important;
        margin: 0 !important;
        width: 100%;
        height: 100%;

        background-color: hsla(0, 0%, 0%, 0.7);
        border-radius: 0;
        border: none;

        pointer-events: none;

        .popover-inner {
            background-color: hsl(0, 0%, 100%);
            pointer-events: all;
        }
    }

    .colorpicker-popover {
        display: flex !important;
        justify-content: center;
        align-items: center;

        /* these are to override JS embedded inline styles. */
        top: 0 !important;
        left: 0 !important;
        margin: 0 !important;
        width: 100%;
        height: 100%;

        background-color: hsla(0, 0%, 0%, 0.7);
        border-radius: 0;
        border: none;

        pointer-events: none;

        .popover-inner {
            background-color: hsl(0, 0%, 100%);
            pointer-events: all;
        }

        @media (width < $sm_min) {
            .popover-inner {
                width: 70%;
            }

            .sp-picker-container {
                border-left: none !important;
            }
        }
    }

    .popover-flex {
        position: absolute;
        top: 0 !important;
        left: 0 !important;

        width: 100vw;
        height: 100vh;

        display: flex !important;
        justify-content: center;
        align-items: center;

        background-color: hsla(0, 0%, 0%, 0.7);

        /* Needs to be higher than the 105 for div.overlay so that the
           emoji picker can render on top of the user status picker. */
        z-index: 106;

        opacity: 0;
        pointer-events: none;

        transition: all 0.3s ease;

        &.fade.in {
            opacity: 1;
            pointer-events: all;
        }

        .popover {
            display: inline-block;
        }
    }

    .emoji-info-popover {
        position: static;
        margin-right: 0;
    }

    #user-profile-modal {
        .stream-list-top-section {
            display: block;

            .header-section {
                width: 100%;
            }

            .stream-search {
                margin-bottom: 8px;
            }

            #clear_stream_search {
                padding-top: 1px;
            }
        }
    }
}

.popover.top .arrow::after {
    left: -1px;
}

#giphy_grid_in_popover {
    /* 300px of GIPHY grid + 5px is the extra gutter space
     * between gif columns. */
    width: 305px;
    border: 0;
    padding: 0;

    .giphy-gif {
        cursor: pointer;
    }

    .giphy-gif-img:focus {
        /* Red outline for clear visibility
         * of which image is in focus.
         */
        outline-color: hsl(0, 100%, 50%);
    }

    .search-box {
        display: flex;
        position: sticky;
        padding: 2px;

        input {
            flex-grow: 1;
            margin: 5px;
            border-radius: 3px;
        }

        .clear_search_button {
            position: absolute;
            top: 5px;
            right: 3px;
            font-size: 16px;

            &:focus {
                .fa-remove {
                    outline: 2px solid hsl(215, 47%, 50%);
                }
            }
        }
    }

    .popover-content {
        overflow: auto;
        height: 200px;
        margin: 2px;
    }

    .popover-footer {
        text-align: center;
        background-color: hsl(0, 0%, 0%);
        border-radius: 0 0 6px 6px;

        img {
            width: 120px;
        }
    }
}

@media (max-width: 768px) {
    #giphy_grid_in_popover {
        position: static;
        top: 0 !important;
        left: 0 !important;
    }
}

.user_info_status_text {
    opacity: 0.8;
    padding: 2px 0 3px;

    .status_emoji {
        height: 18px;
        width: 18px;
        top: 2px;
    }
}

#move_topic_modal {
    form {
        margin: 0;
    }

    /* Ensure that the dropdown can overflow the modal. */
    .modal__content {
        overflow: visible;
    }

    /* Override the default border-radius to properly align
       the button corners with `stream_header_colorblock`. */
    .dropdown-toggle {
        border-radius: 1px 4px 4px 1px !important;
    }

    .dropdown-list-widget,
    .stream_header_colorblock {
        margin-bottom: 10px;
    }

    .topic_stream_edit_header {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;

        #select_stream_id {
            border-left: 0;
            padding-left: 0;
            border-radius: 3px;
            margin: 0 5px 5px -10px;
            text-indent: 10px;
        }

        .dropdown-menu {
            position: fixed;
            top: 125px;
            left: 40px;
        }
    }
}
