.ydb-table-form-column-selector {
    position: relative;

    width: 100%;

    &__control {
        position: relative;

        display: flex;
        overflow: hidden;
        align-items: center;
        gap: var(--g-spacing-1);

        box-sizing: border-box;
        width: 100%;
        height: 28px;
        padding: 6px 9px;

        font-family: var(--g-text-body-font-family);
        font-size: var(--g-text-body-short-font-size);
        font-weight: var(--g-text-body-font-weight);
        line-height: var(--g-text-body-short-line-height);
        cursor: pointer;
        text-align: left;

        color: var(--g-color-text-primary);
        border: none;
        border-radius: var(--g-border-radius-m);
        outline: none;
        background: none;

        &::before {
            position: absolute;
            inset: 0;

            content: '';
            pointer-events: none;

            border: 1px solid var(--g-color-line-generic);
            border-radius: var(--g-border-radius-m);
        }

        &:hover::before {
            border-color: var(--g-color-line-generic-hover);
            background-color: var(--g-color-base-simple-hover);
        }

        &_open::before,
        &:focus-visible::before {
            border-color: var(--g-color-line-generic-active);
        }

        &_invalid::before {
            border-color: var(--g-color-line-danger);
        }
    }

    &__value {
        overflow: hidden;
        flex: 1;

        min-width: 0;

        white-space: nowrap;
        text-overflow: ellipsis;
    }

    &__placeholder {
        overflow: hidden;
        flex: 1;

        min-width: 0;

        white-space: nowrap;
        text-overflow: ellipsis;

        color: var(--g-color-text-hint);
    }

    &__badge {
        flex-shrink: 0;
    }

    &__chevron {
        flex: 0 0 16px;
        flex-shrink: 0;

        margin-inline-start: auto;

        color: var(--g-color-text-secondary);

        transition: transform 0.15s ease;

        &_open {
            transform: rotate(180deg);
        }
    }

    &__panels {
        --g-list-item-padding: var(--g-spacing-1) var(--g-spacing-4);
        display: flex;

        min-height: 200px;
    }

    &__panel {
        overflow: hidden;
        flex: 0 0 50%;

        padding-block-start: var(--g-spacing-2);

        &:not(:last-child) {
            border-inline-end: 1px solid var(--g-color-line-generic);
        }
    }

    &__panel-header {
        display: flex;
        justify-content: space-between;
        align-items: center;

        min-height: 24px;
        margin-block-end: var(--g-spacing-2);
        padding: var(--g-list-item-padding, var(--g-spacing-1) var(--g-spacing-2));
    }

    &__panel-title {
        font-weight: var(--g-text-accent-font-weight);

        color: var(--g-color-text-primary);
    }

    &__selector-item {
        display: flex;
        overflow: hidden;
        align-items: center;
        gap: var(--g-spacing-1);

        width: 100%;

        &:hover &-action,
        &:focus-within &-action {
            visibility: visible;
        }

        &-text {
            overflow: hidden;
            flex: 1;

            white-space: nowrap;
            text-overflow: ellipsis;
        }

        &-action {
            visibility: hidden;
            flex-shrink: 0;

            border-radius: var(--g-border-radius-l);

            &_visible {
                visibility: visible;
            }
        }
    }

    &__popup-controls {
        display: flex;
        justify-content: flex-end;
        gap: var(--g-spacing-2);

        padding: var(--g-spacing-4);

        border-top: 1px solid var(--g-color-line-generic);
    }
}
