/*!
 * 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.
 */

.checkbox-group {

  .empty-checkbox{
    margin: 0;
  }

  .config-details {
    height: 0;
    opacity: 0;
    visibility: hidden;
    text-align: left;

    &.show {
      height: 200px;
      visibility: visible;
      opacity: 1;
      position: relative;
      margin-top: 10px;
    }

    textarea {
      height: 100%;
      background: #f8f8f8 !important;
      resize: none;
      font-size: 14px;
      line-height: 1.5;
      font-family: Consolas, monospace;
    }

    .spark-config{
      position: absolute;
      bottom: -15px;
      right: 0;
    }

    span {
      &.danger_color {
        position: absolute;
        bottom: -20px;
        left: 0;
      }
    }
  }
}

.control-group {
  .error {
    position: absolute;
    right: 0;
    top: 38px;
  }

  &.name-control {
    padding-bottom: 35px;
  }
}

.image-description {
  font-size: 12.5px;
  overflow-wrap: break-word;

  i {
    font-size: 14px;
  }
}

.content-box {
  max-height: 580px;
  overflow-y: auto;
}

.form-field-wrapper{
  width: 100%;
}

@-moz-document url-prefix() {
  .create-environment form {
    padding-bottom: 30px;
  }
}
