/* Copyright 2016 The Vanadium Authors. All rights reserved. */
/* Use of this source code is governed by a BSD-style */
/* license that can be found in the LICENSE file. */

body {
  font-family: Roboto;
  font-weight: 400;
  font-style: normal;
  font-color: #37474F;
  -webkit-font-smoothing: antialiased;
  font-size: 12px;
  line-height: 20px;
  padding: 0px;
  margin: 0px;
  overflow: hidden;
}

.allocatord {
  overflow: auto;
}

.allocatord .main {
  margin: 84px 24em 28px 28px;
  padding: 28px 56px;
  max-width: 900px;
  margin-right: 10px;
}

.allocatord .btns-col {
  padding-top: 16px;
  padding-right: 16px;
  width: 130px;
  flex: 0;
  position: relative;
}

.allocatord .btns-col .button-passive {
  width: 110px;
  text-align: center;
  margin-top: 4px;
}

.allocatord .btn-destroy a {
  /* TODO(jingjin): Prettify :-) */
  /* position: absolute; */
  /* bottom: 20px; */
  color: #FF4F1A;
  border: 1px solid #FF4F1A;
  -webkit-transition: background-color 0.28s cubic-bezier(0.4, 0.0, 0.2, 1);
  transition: background-color 0.28s cubic-bezier(0.4, 0.0, 0.2, 1);
}

.allocatord .btn-destroy a:hover, .allocatord .btn-destroy a:active {
  color: #FFFFFF;
  background-color: #FF4F1A;
}

.allocatord .blessings-item .blessing-details {
  padding: 16px 10px 16px 10px;
  flex: 1;
}

.allocatord .blessing-caveats {
  font-size: 13px;
  line-height: 15px;
  padding-top: 8px;
}

.allocatord .blessing-caveats span {
  font-weight: 500;
}

.allocatord #createBtn {
  margin-top: 20px;
  margin-bottom: 20px;
}

.allocatord #message {
  padding-top: 2px;
  font-size: 11px;
  border-top: 1px solid #CCC;
}

#container {
  position: fixed;
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}

#header {
  display: flex;
  justify-content: space-between;
  background-color: #00838F;
  box-shadow: rgba(0, 0, 0, 0.20) 0px 2px 4px 0px;
  width: 100%;
  height: 48px;
  line-height: 48px;
  color: white;
  font-size: 16px;
  font-weight: 400;
  z-index: 9999;
  position: absolute;
  top: 0px;
  left: 0px;
}

#header div {
  margin-left: 10px;
  margin-right: 10px;
}

#header #title {
  width: 300px;
}

#header #email {
  width: 300px;
  text-align: right;
}

.mg-y-axis text, .mg-x-axis text {
  font-size: 11px;
}

.mg-header {
  font-size: 16px;
}

.mg-active-datapoint {
  font-size: 12px;
}

#charts {
  display: flex;
  flex-wrap: wrap;
  overflow-y: auto;
  align-content: flex-start;
  position: absolute;
  top: 48px;
  bottom: 0px;
  justify-content: center;
}

.chart {
  margin-top: 20px;
}

.chart.filler {
  width: 700px;
}

#durations-container {
  position: absolute;
  left: 0px;
  bottom: 0px;
  background-color: white;
  opacity: 0.8;
}

#loading-label {
  padding-left: 6px;
  color: #FF4F1A;
}

#durations {
  display: flex;
  height: 20px;
  border-top: 1px solid #999;
  border-right: 1px solid #999;
}

.duration-item {
  font-size: 12px;
  width: 24px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  cursor: pointer;
  color: #777;
}

.duration-item.selected {
  cursor: default;
  background-color: #00838F;
  color: white;
}

.duration-item:not(.selected):hover {
  background-color: #CCC;
}

#error-msg {
  position: fixed;
  right: 0px;
  bottom: 0px;
  padding: 2px 4px 2px 4px;
  background-color: #AA0000;
  color: white;
  display: none;
}
