/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

.vertex-configs-container {
  display: inline-block;
  width: 40%;
  vertical-align: top;

  .row-container {
    display: flex;
  }

  .column-container {
    display: inline-block;
  }

  .column-container, .processor {
    margin: 0 5px 0 5px;
    flex: 1 1;

    .box {
      border: 1px solid @border-color;
      border-radius: 5px;
      overflow: hidden;

      .header, .config-cell {
        padding: 5px;
      }

      .header {
        height: auto;
        margin: 0px;
      }

      .config-cell {
        cursor: pointer;

        border-top: 1px dotted @border-color;

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

        .count-txt {
          color: @text-light;
          font-size: .8em;
        }

        &:nth-child(2) {
          border-top: none;
        }

        &.selected {
          background-color: @bg-liter;
        }

        &:hover {
          background-color: @bg-lite;
        }
      }
    }

    .link {
      border-left: 1px solid @border-color;
      margin-left: 50%;
      height: 10px;
    }
  }

  .top-column {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .processor {
    text-align: center;
  }

}

.configuration-details {
  display: inline-block;
  width: 60%;
  padding-left: 10px;
}
