.pagination a {
  text-decoration: none !important;
}
.panel.panel-default {
  overflow: visible !important;
}
.table-responsive {
  overflow: visible !important;
}
.table-responsive {
  overflow-x: scroll !important;
}
body {
  overflow-y:scroll;
}
/* Fix modal moving content left */
body.modal-open {
  overflow-y:scroll;
  padding-right: inherit !important;
}
@media (min-width: 992px) {
  .container {
      width: 80%;
  }
}
.mass-actions-admin {
  user-select: none;
}
.inputMissingAttr {
  border-color: #FF4136;
}
.rotate {
  -moz-transition: all 0.3s linear;
  -webkit-transition: all 0.3s linear;
  transition: all 0.3s linear;
}
.rotate.animation {
  -ms-transform:rotateX(180deg);
  -moz-transform:rotateX(180deg);
  -webkit-transform:rotateX(180deg);
  transform:rotateX(180deg);
}
.anchor {
  display: block;
  height: 65px;
  margin-top: -65px;
  visibility: hidden;
}
.thumbnail img {
  min-height:100px;
  height:100px;
}
.nav-tabs>li>a {
  z-index: 1;
}
.table-condensed .input-sm {
  width: 100%!important;
}
.table-condensed > thead > tr > th, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > tbody > tr > td, .table-condensed > tfoot > tr > td {
  padding: 3px;
}
table tbody tr {
  cursor: pointer;
}
table tbody tr td input[type="checkbox"] {
  cursor: pointer;
}
#quarantine_template {
  margin:20px;
}
.regex-input {
  font-family: Consolas,monaco,monospace;
  font-size: 1rem;
}
.label-keys {
  font-size:100%;
  margin: 0px !important;
  white-space: normal !important;
}
.key-action {
  font-weight:bold;
  color:white !important;
}
.dkim-label {
  margin: 0 0 8px !important;
}