/* Global styles */
* {
  margin: 0;
  padding: 0;
  font: 400 14px 'Montserrat', sans-serif;
  color: #333;
  box-sizing: border-box;
}

body {
  padding-top: 56px;
}

.content {
  padding-left: 10%;
  font: 400 14px 'Montserrat', sans-serif;
}

.content-centered {
  padding-left: 10%;
  padding-right: 10%;
  font: 400 14px 'Montserrat', sans-serif;
}

.content-centered-big {
  padding-left: 5%;
  padding-right: 5%;
  font: 400 14px 'Montserrat', sans-serif;
}

h1 {
  font: 400 18px 'Montserrat', sans-serif;
}

.memberList {
  display: table;
}

.memberItem {
  display: table-row;
}

.memberName, .memberValue {
  display: table-cell;
  vertical-align: top;
  padding: 3px 0 3px 1em;
  font: 400 14px 'Montserrat', sans-serif;
}

.memberSmall {
  display: table-cell;
  vertical-align: top;
  padding: 3px 0 3px 1em;
  font: 400 12px 'Montserrat', sans-serif;
}

.monospace {
  font-family: consolas, courier, monospace;
  font-size: 1em;
  line-height: 1.2em;
  white-space: nowrap;
}

a {
  color: #0489c3;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

em {
  color: inherit;
  font-style: italic;
}

b {
  color: inherit;
  font-weight: bold;
}

hr {
  margin-top: 20px;
  margin-bottom: 20px;
  border: 0;
  border-top: 1px solid #eee;
  height: 0;
  box-sizing: content-box;
}

.list-group {
  padding-left: 0;
  margin-bottom: 20px;
}

.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
}

.list-group-item:first-child {
  /* rounded top corners */
  border-top-right-radius:4px;
  border-top-left-radius:4px;
}

.list-group-item:last-child {
  margin-bottom: 0;
  /* rounded bottom corners */
  border-bottom-right-radius: 4px;
  border-bottom-left-radius:4px;
}

.full {
  height: 100%;
  width: 100;
}

.flex-row {
  display: flex;
  flex-direction: row;
}

/* Flex row container */
.flex-row {
  display: flex;
  flex-direction: row;
}

.flex-row-wrap {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

.inline-flex-row {
  display: inline-flex;
  flex-direction: row;
}

/* Flex column container */
.flex-column {
  display: flex;
  flex-direction: column;
}

.flex-item-fit {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
}

.flex-item-no-shrink {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: auto;
}

.flex-item-fill {
  flex-grow: 0;
  flex-shrink: 1;  /* shrink when pressured */
  flex-basis: 100%;  /* try and take 100% */
}

.flex-item-fixed-1-12 {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 8.3%;
}

.flex-item-fixed-2-12 {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 16.6%;
}

.flex-item-fixed-4-12 {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 33.3333%;
}

.flex-item-fixed-6-12, .flex-item-50-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 50%;
}

.flex-item-fixed-8-12 {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 66.6666%;
}

.flex-item-fixed-9-12 {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 75%;
}


.flex-item-fixed-12-12 {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 100%;
}

.flex-item-10-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 10%;
}

.flex-item-15-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 15%;
}

.flex-item-20-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 20%;
}

.flex-item-30-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 30%;
}

.flex-item-40-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 40%;
}

.flex-item-45-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 45%;
}

.flex-item-50-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 50%;
}

.flex-item-60-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 60%;
}

.flex-item-70-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 70%;
}

.flex-item-80-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 80%;
}

.flex-item-90-percent {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 90%;
}

.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 4px;
  box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
}

.break-wrap {
  word-wrap: break-word;
}

body.busy, body.busy * {
  cursor: progress !important;
}

.pointer {
  cursor: pointer;
}

.shadow {
  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.16),
              0 2px 5px 0 rgba(0, 0, 0, 0.26);
}

@-webkit-keyframes fadeIn {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}

@-moz-keyframes fadeIn {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes fadeIn {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}

@-webkit-keyframes shake {
  0%, 100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }
}

@keyframes shake {
  0%, 100% {
    -webkit-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    -ms-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    -ms-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }
}

.shake {
  animation: shake 0.5s;
  -webkit-animation: shake 0.5s;
}

/* nav-notify */
/* TODO(cbernaschina) fix nav-notify-ref-wrapped to nav-notify-ref when wrapper
removed */
nav-notify-wrapped > div {
  float: right;
}
nav-notify-wrapped > div > div {
  display: block;
  position: absolute;
  top: 98%;
  right: 0;
  margin: 0;
  padding: 0;
  width: auto;
  z-index: 1000;
  background: none;
}

/* nav-exception & nav-event */

nav-exception > div, nav-event > div {
  position: relative;
  padding: 16px;
  margin-top: 10px;
  margin-right: 10px;
  padding-right: 25px;
  width: 500px;
  color: #ddd;
  background: rgba(0,0,0,.6);
  border: solid 2px white;
  box-shadow: 0 0 5px black;
  border-radius: 5px;
  animation: fadein 1s;
}

nav-exception *, nav-event * {
  color: #ddd;
  font-size: 12px;
}

nav-exception > div > a, nav-event > div > a {
  color: white;
  text-decoration: none;
}

nav-exception > div > a:hover, nav-event > div > a:hover {
  text-decoration: underline;
}

nav-exception > div > div {
  margin-left:20px;
  white-space: pre
}

nav-exception > div > button, nav-event > div > button {
  background: transparent;
  border: none;
  position: absolute;
  display: block;
  top: 4px;
  right: 4px;
  height: 18px;
  width: 18px;
  line-height: 16px;
  border-radius: 9px;
  color: white;
  font-size: 18px;
  cursor: pointer;
  text-align: center;
}

nav-exception > div > button:hover, nav-event > div > button:hover {
  background: rgba(255,255,255,0.5);
}

/* nav-refresh */
/* TODO(cbernaschina) fix nav-refresh-wrapped to nav-refresh when wrapper
removed */

nav-refresh-wrapped > li > button {
  color: #000;
  margin: 3px;
  padding: 8px;
  border-width: 2px;
  line-height: 13px;
  font: 400 13px 'Montserrat', sans-serif;
}
nav-refresh-wrapped > li > button[disabled] {
  color: #aaa;
  cursor: wait;
}
nav-refresh-wrapped > li {
  float: right;
  margin: 0;
}

/* view-footer */

view-footer {
  padding: 1em;
  padding-top: 10.3em;
  float: right;
  align-content: right;
}

view-footer > a {
  margin-bottom: 0.17em;
  font-size: 90%;
  float: right;
  clear: both;
  display: block;
}

/* vm-connect-target */
/* TODO(cbernaschina) fix vm-connect-target-wrapped to vm-connect-target
+when wrapper removed */

vm-connect-target-wrapped > button.delete-button {
  margin-left: 0.28em;
  padding: 4px;
  background: transparent;
  border: none !important;
}

vm-connect-target-wrapped > button.delete-button:hover {
  background: #ff0000;
}
