/**
 * 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.
 */
:host {
  .modal-backdrop {
    opacity: .5;
    z-index: 1040;
  }
  .modal-dialog {
    margin: 2.5rem auto;
    max-width: 90vw;
    width: auto;
    z-index: 1045;
    .modal-content {
      display: flex;
      flex-direction: column;
      max-height: 90vh;
      overflow: hidden;
      padding: 1.42rem;
      .modal-header {
        display: block;
        flex-shrink: 1;
        line-height: 1.42rem;
        position: relative;
        &> * {
          display: inline-block;
        }
        .close {
          position: absolute;
          top: 0;
          right: 1em;
        }
      }
      .modal-body {
        flex: 1;
        overflow: auto;
      }
      .modal-footer {
        flex-shrink: 1;
      }
    }
  }
}
