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

// Variables
@base-font-color: #666;
@navbar-background-color: #323544;
@navbar-logo-background-color: #303d54;
@h1-vertical-margin: 20px;
@button-border-radius: 4px;
@input-border-width: 1px;
@input-border: @input-border-width solid #CFD3D7;
@input-group-addon-padding: 6px 12px 6px 0;
@block-margin-top: 20px;
@link-color: #1491C1;
@link-hover-color: #23527C;
@grey-color: #DDD;
@default-line-height: 1.42857143;
@main-background-color: #ECECEC;
@filters-panel-background-color: #FFF;
@filters-panel-padding: 10px 0;
@list-header-background-color: #F2F2F2;
@checkbox-top: 4px;
@dropdown-min-width: 160px;
@dropdown-max-height: 60vh; // TODO get rid of magic number, base on actual design
@dropdown-border-radius: 2px;
@input-height: 34px;
@input-padding: 10px;
@col-padding: 15px;
@search-parameter-padding: 5px 2px;

// Forms
@form-success-color: #1eb475;
@form-error-color: #ef6162;
@form-warning-color: #e98a40;
@form-info-color: @debug-color;


@fatal-color: #830A0A;
@error-color: #E81D1D;
@warning-color: #FF8916;
@info-color: #2577B5;
@debug-color: #65E8FF;
@trace-color: #888;
@unknown-color: #BDBDBD;
@submit-color: #5CB85C;
@submit-hover-color: #449D44;
@exclude-color: #EF6162;

// Panels
@panel-heading: rgba(255, 255, 255, 1);

// Badge
@badge-bg: rgba(239, 97, 98, 1);
@badge-padding: 2px 5px;

// Icon
@icon-padding: 5px;

// Table
@table-border-color: #EEE;
@table-font-size: 13px;

// Graph
@graph-padding: .5rem;
@graph-invert-selection-background: @grey-color;

// Log list
@log-list-row-data-padding: 8px;
@log-list-row-hover-background-color: #E7F6FC;
@log-list-row-hover-border-color: #A7DFF2;
@log-list-border-color: rgb(238, 238, 238);

// Modals
@large-modal-width: 1200px;

// Notifications
@notification-color: @base-font-color;
@notification-title-font-size: 14px;
@notification-content-font-size: 12px;
@notification-background-color: #FFF;
