body {
  margin: 2%;
}

.checkbox {
  margin-top: 0px !important;
}

 /* select2 dropdowns */
.select2-container {
  width: 100% !important;

  .select2-results__option .select2-results__option {
    padding-left: 24px !important;
  }
}

 /* add asterisk to form fields to indicate 'required' */
label[optional='false']:after {
  content: " *";
}

/* for responsive tables work in firefox */
@-moz-document url-prefix() {
  fieldset { display: table-cell; }
}

/* vertically align table cell content to the middle instead of default top alignment */
.table > tbody > tr.vertical-align-middle > td {
  vertical-align: middle;
}

 /* full-width */
.full-width {
  width: 100%;
}

 /* td already has a border-top, so avoid doubling up by removing the border-bottom from th */
.table > thead > tr > th {
  border-bottom: none;
}

/* make datagrid table sorting arrows inline with header */
.datagrid-table {
  .order {
    display: inline-block;
  }
}

/* make buttons at the bottom of a table _not_ have a visible line above them */
tbody > tr.table-buttons > td {
  border-top: none;
}

/* css only panel show/hide based on previous sibling container radio button state */
.show-when-checked {
  display: none;
  .show-when-checked-control:has(input[type="radio"]:checked) ~ & {
    display: unset;
  }
}

.panel {
  .panel {
    .form-group {
      padding-left: 15px;
      padding-right: 15px;
    }
  }
}

.btn-outline-danger {
  border-color: #f44336;
  color: red;
}

.btn-outline-danger:hover {
  background: #f44336;
  color: white;
}

body.saml-post-body {
  visibility: hidden;
}

.vertical-center {
  display: flex;
  align-items: center;
}

.horizontal-between {
  display: flex;
  justify-content: space-between;
}

.text-red {
  color: red;
}

.hoverable-cell {
  background-color: #fff;
  cursor: pointer;
}

.hoverable-cell:hover {
  background-color: #f5f5f5;
}

.util-flex {
  flex: 1;
}

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

.grid {
  display: grid;
}
