.common-table {
    .common-table-color-set();
    .descriptive-icons-color-set();

    @table-border: 1px solid @pale-grey;

    //
    // Common table rules
    //
    .common-table-cells-container {
        display: -ms-flexbox;
        display: flex;
        flex: 1 1 auto;
        min-width: 0;
        margin: 0;
        width: 100%;

        color: @cells-container-color;
        font-size: 14px;
        font-family: @font-family-sans-serif;
        font-weight: 400;

        .description-content {
            position: relative;
            white-space: normal;
            max-height: 40px;
        }
    }

    .common-table-cell {
        align-items: center;
        display: -ms-flexbox;
        display: flex;
        justify-content: flex-start;
        overflow: hidden;
        padding: 0 16px;
        position: relative;
        text-overflow: ellipsis;

        .item-cell-sub-text {
            font-size: 12px;
            color: @item-cell-sub-text-color;
        }

        &.element-loading-status-wrapper .element-loading-status {
            height: auto;
        }

        &.check-all-rows,
        &.check-row {
            border-left: none;
            justify-content: center;
            width: 48px;
            flex: 0 0 auto;
        }

        &.actions-menu {
            cursor: default;
            justify-content: center;
            overflow: visible;
            padding: 0;
            width: 51px;
            flex: 0 0 auto;
        }

        &.no-border {
            border-left: none;
        }

        .common-table-cell-overflow {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        &.centered {
            justify-content: center;
        }
    }

    //
    // Table header
    //
    .common-table-header {
        border: @header-border;
        display: -ms-flexbox;
        display: flex;
        position: relative;
        line-height: 41px;

        .common-table-cell {
            color: @header-cell-color;
            font-family: @font-family-sans-serif;
            font-size: 14px;
            font-weight: 500;
            height: 55px;
            text-overflow: ellipsis;
            white-space: nowrap;
            cursor: default;

            &.sortable {
                cursor: pointer;

                .sort-arrow {
                    cursor: pointer;
                    font-family: 'iguazio';
                    font-size: 12px;
                    font-weight: 400;
                    padding-left: 8px;

                    &:before {
                        content: '\e928';
                    }
                }

                &.reversed {
                    .sort-arrow:before {
                        content: '\e929';
                    }
                }

                &.sorted {
                    color: @header-cell-sorted-color;
                    font-size: 14px;
                    font-weight: bold;
                }
            }

            &.item-name {
                &.details-present {
                    border-right: @header-cell-details-present-border-right;
                    border-left: @header-cell-details-present-border-left;
                }
            }
        }
    }

    //
    // Table body
    //
    .common-table-body {
        .common-table-row {
            border: @row-border;
            border-top: none;
            background-color: @row-bg-color;
            display: -ms-flexbox;
            display: flex;
            position: relative;
            min-height: 56px;

            &.inactive-row .inactive-state {
                color: @row-inactive-color;

                .common-table-cell .column-block .common-table-icon:before {
                    color: @row-inactive-color;
                }
            }

            &.deleting-row {
                &:hover .common-table-cells-container {
                    background-color: @deleting-row-cells-in-hover-bg-color;

                    .common-table-cell.item-name-wrapper .item-name {
                        background-color: @deleting-row-item-name-in-hover-bg-color;
                    }

                    .common-table-cell.item-name-wrapper ~ .common-table-cell {
                        background-color: @deleting-row-cell-in-hover-bg-color;
                    }
                }

                &.selected {
                    &:hover {
                        .common-table-cells-container.deleted-state {
                            .item-name-wrapper {
                                .item-name {
                                    background-color: @selected-item-name-in-hover-bg-color;
                                }
                            }
                        }
                    }

                    .common-table-cells-container.deleted-state {
                        background-color: @selected-deleted-state-bg-color;

                        .item-name-wrapper {
                            .item-name {
                                background-color: @selected-deleted-state-item-name-bg-color;
                            }
                        }

                        &:hover {
                            .common-table-cell.item-name-wrapper .item-name {
                                background-color: @selected-deleted-state-item-name-in-hover-bg-color;
                            }

                            .common-table-cell.item-name-wrapper ~ .common-table-cell {
                                background-color: @selected-deleted-state-cell-in-hover-bg-color;
                            }
                        }
                    }
                }

                .deleted-state {
                    color: @deleted-state-color;

                    .common-table-cell.item-name-wrapper .item-name {
                        border-right-color: @deleted-state-item-name-border-right-color;
                        transition: none;

                        &:after {
                            content: '';
                        }

                        &:hover {
                            box-sizing: border-box;
                            box-shadow: none;
                            margin: 0;
                            padding: 0;
                            z-index: 0;
                        }
                    }
                }
            }

            &.checked,
            &.selected {
                .common-table-cells-container {
                    background-color: @row-selected-cells-bg-color;

                    .item-name-wrapper {
                        .item-name {
                            background-color: @row-selected-cells-item-name-bg-color;
                        }
                    }

                    .common-table-cell {
                        &.item-name-wrapper:hover {
                            & ~ .common-table-cell {
                                background-color: @row-selected-cells-item-name-cell-in-hover-bg-color;
                            }
                        }
                    }
                }

                .actions-menu {
                    background-color: @row-selected-action-menu-bg-color;
                }
            }

            &.read-only {
                .common-table-cells-container {
                    cursor: default;
                }
            }

            &:not(.read-only):hover {
                .common-table-cells-container {
                    background-color: @row-cells-in-hover-bg-color;
                }

                .actions-menu {
                    background-color: @row-actions-menu-in-hover-bg-color;
                }

                .zone-drag {
                    display: block;
                    z-index: 9;

                    .igz-icon-drag {
                        visibility: visible;
                    }
                }
            }

            .zone-drag {
                .igz-icon-drag {
                    top: 50%;
                    margin-top: -50%;
                    font-size: 16px;
                    color: @zone-drag-icon-color;
                }

                .igz-icon-drag-arrow-up {
                    top: 1px;
                }

                .igz-icon-drag-arrow-down {
                    height: 11px;
                    bottom: 1px;
                }
            }

            .common-table-cell {
                border-left-color: @cell-border-left-color;

                .column-block .common-table-icon:before {
                    color: @icon-default-color;
                }

                // Cell with justified horizontal blocks cell
                &.space-between {
                    justify-content: space-between;

                    > div {
                        flex-shrink: 0;

                        &.flex-shrink {
                            flex-shrink: 1;
                        }

                        &:first-child {
                            overflow: hidden;
                            text-overflow: ellipsis;
                            white-space: nowrap;
                        }
                    }
                }

                &.item-name {
                    &.details-present {
                        border-right: @cell-item-name-details-present-border-right;
                        border-left: @cell-item-name-details-present-border-left;
                    }
                }

                &.item-name-wrapper {
                    padding: 0;
                    position: relative;
                    overflow: visible;

                    .item-name {
                        width: 100%;
                        height: 100%;
                        display: flex;
                        align-items: center;

                        .text-ellipsis {
                            margin-left: 16px;
                        }

                        &.drilldown {
                            background-color: @item-name-bg-color;
                            border-width: 1px;
                            border-style: solid;
                            border-color: @item-name-border-color;
                            font-weight: bold;
                            transition: all 0.1s;

                            &:hover {
                                box-sizing: content-box;
                                box-shadow: @item-name-hover-box-shadow;
                                margin: 0 0 0 -1px;
                                padding: 1px 0 1px;
                                z-index: 99;
                            }

                            &:after {
                                color: @item-name-after-color;
                                content: '\e914';
                                font-family: 'iguazio';
                                font-size: 11px;
                                margin-right: 14px;
                            }
                        }

                        .item-description {
                            color: @item-name-description-color;
                            display: block;
                            font-size: 12px;
                            text-align: left;

                            .item-description-accent {
                                color: @item-name-description-accent-color;
                                font-weight: 700;
                            }
                        }

                    }

                    &:hover {
                        & ~ .common-table-cell {
                            background-color: @item-name-wrapper-cell-in-hover-bg-color;
                        }

                        .actions-menu {
                            background-color: @item-name-wrapper-action-menu-in-hover-bg-color;
                        }
                    }
                }

                &.selected {
                    background-color: @cell-selected-bg-color;
                }
                &.modified {
                    border-bottom: @cell-modified-border-bottom;
                }

                .centered {
                    width: 70px;
                    display: block;
                    margin: 0 auto;
                    text-align: right;
                }

                &.text-nowrap {
                    white-space: nowrap;
                }
            }
            .zone-highlight {
                position: absolute;
                left: -1px;
                top: 0;
                bottom: 0;
                width: 3px;
                padding: 0;
            }
        }

        .title-block {
            .igz-icon-drag {
                top: 1px;
                font-size: 12px;
                color: @title-block-icon-drag-color;
            }

            .igz-icon-drag-arrow-up {
                top: -18px;
            }

            .igz-icon-drag-arrow-down {
                top: 18px;
            }

            &:hover {
                .igz-icon-drag {
                    visibility: visible;
                }
            }
        }

        .zone-drag {
            height: 100%;
            width: 16px;
            left: 0;
            position: absolute;
            color: @zone-drag-color;
            cursor: move;

            .igz-icon-drag {
                width: 0;
                z-index: 1;
                position: absolute;
                visibility: hidden;
                left: 6px;
            }

            .igz-icon-drag-arrow-up, .igz-icon-drag-arrow-down {
                cursor: default;
                position: absolute;
                visibility: hidden;
                left: 2px;
                font-size: 10px;

                &:before {
                    cursor: pointer;
                }
            }

            &:hover {
                background-color: @zone-drag-hover-bg-color;

                .igz-icon-drag-arrow-up, .igz-icon-drag-arrow-down {
                    visibility: visible;
                    color: @zone-drag-icon-arrow-in-hover-color;

                    &:hover {
                        color: @zone-drag-icon-arrow-hover-color;
                    }
                }

                .igz-icon-drag {
                    color: @zone-drag-icon-drag-in-hover-color;
                }
            }
        }
    }
}
