.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;
  padding:10px 0 10px 0;
}
.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;
}