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

.swimlane-page {

  .button-panel {
    .no-select;

    text-align: right;

    height: 30px;

    .fa {
      font-size: 20px;

      border-radius: 5px;

      cursor: pointer;

      border-color: @border-lite;
      background-color: @bg-lite;

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

  .zoom-range {
    .no-wrap;
    display: inline-block;
    width: 300px;

    margin-right: 5px;
    padding-right: 5px;
    border-right: 1px solid @border-color;

    input {
      width: 200px;
      display: inline-block;
      margin-top: 5px;
      vertical-align: text-bottom;
    }
  }

  .fa-compress {
    display: none;
  }

  .fullscreen {
    height: 100%;
    width: 100%;

    overflow: auto;

    padding: 10px;

    .fa-compress {
      display: inline-block;
    }
    .fa-expand {
      .no-display;
    }
  }

  &:-webkit-full-screen {
    .fullscreen;
  }
  &:fullscreen {
    .fullscreen;
  }
  &:-moz-full-screen {
    .fullscreen;
  }
}
