@media (min-width: 768px) {
  html {
    font-size: 12px;
  }
}

html,
body {
  height: 100%;
  font-size: 12px !important;
  color: #212529;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

body>.container-fluid {
  flex: 1;
}

.mb-5 {
  margin-bottom: 5rem !important;
}

.table-striped>tbody>tr:hover>* {
  --bs-table-color-state: var(--bs-table-hover-color) !important;
  --bs-table-bg-state: #82DED6 !important;
}

.tablesorter-filter {
  display: block;
  width: 100%;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  color: var(--bs-body-color);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--bs-body-bg);
  background-clip: padding-box;
  border: var(--bs-border-width) solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
  transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
}

.tablesorter-filter.disabled {
  visibility: hidden !important;
}

.fa-duration-1 {
  animation-iteration-count: 1;
}

.fa-duration-10 {
  animation-iteration-count: 10;
}

.footer {
  margin-top: auto;
}

.form-floating>.form-control-plaintext::placeholder,
.form-floating>.form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating>.form-control-plaintext:focus::placeholder,
.form-floating>.form-control:focus::placeholder {
  text-align: start;
}

.twitter-typeahead {
  width: 100%;
}

.modal-dialog-scrollable {
  max-height: 90vh !important;
}

/* A dialog 90% of the viewport wide, for the claim detail modal. Wider than modal-xl's 1140px
   because the service line table runs to fourteen columns and a remit is read across rather than
   down - at modal-xl anything past a line or two scrolled sideways inside the dialog. Used in
   place of modal-xl rather than over it, so the width does not rest on which stylesheet loads
   last. Bootstrap only reads --bs-modal-width from 576px up; below that the dialog is already
   the full width less its margin */
.modal-90w {
  --bs-modal-width: 90vw;
}

.tt-menu {
  width: 100%;
  background-color: #f8f9fa;
  font-family: "Lexend Deca";
  font-size: 1em;
  margin: 0 0 0 0;
  padding: 0 0 0 0;
  overflow-y: auto;
  z-index: 1051;
}

.tt-suggestion {
  border-top: dashed;
  border-top-width: .5px;
  margin: 0 0 0 0;
  padding: 5px 5px 5px 5px;
  white-space: nowrap;
  cursor: pointer;
}

.tt-suggestion:hover,
.tt-suggestion.tt-cursor {
  .tt-suggestion {
    border-top: dashed;
    border-top-width: .5px;
    margin: 0 0 0 0;
    padding: 5px 5px 5px 5px;
    white-space: nowrap;
  }
}

.tt-suggestion:nth-child(2n+1) {
  background-color: #ebedf1;
}

.tt-highlight {
  font-weight: bold;
}

.input-group>.twitter-typeahead {
  position: relative;
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

/* Table cell watermarks — one class per -small.png image */
[class^="wm-"],
[class*=" wm-"] {
  position: relative;
}

[class^="wm-"]::before,
[class*=" wm-"]::before {
  content: "";
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: 0.15;
  pointer-events: none;
}

.wm-acp-hmoi::before {
  background-image: url('../images/ACP-HMOI-small.png');
}

.wm-bcp::before {
  background-image: url('../images/BCP-small.png');
}

.wm-chp-hmoi::before {
  background-image: url('../images/CHP-HMOI-small.png');
}

.wm-gh-bh::before {
  background-image: url('../images/GH-BH-small.png');
}

.wm-hshs-hmoi::before {
  background-image: url('../images/HSHS-HMOI-small.png');
}

.wm-ipg-hmoi::before {
  background-image: url('../images/IPG-HMOI-small.png');
}

.wm-nmpn-hmoi::before {
  background-image: url('../images/NMPN-HMOI-small.png');
}

.wm-npa-hmoi::before {
  background-image: url('../images/NPA-HMOI-small.png');
}

.wm-path::before {
  background-image: url('../images/PATH-small.png');
}

.wm-pcn-hmoi::before {
  background-image: url('../images/PCN-HMOI-small.png');
}

.wm-php-hmoi::before {
  background-image: url('../images/PHP-HMOI-small.png');
}

.wm-ucmpp-hmoi::before {
  background-image: url('../images/UCMPP-HMOI-small.png');
}

.wm-vpn-hmoi::before {
  background-image: url('../images/VPN-HMOI-small.png');
}

/* Full-page wait - markup in _LoadingOverlay.cshtml, raised by loading-overlay.js. Above the
   modal layer (1055) and the typeahead menu (1051), since it has to cover whatever the page was
   showing. d-none does the hiding, so display here only lays the panel out once it is shown */
.loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.5);
}

.loading-overlay-panel {
  min-width: 14rem;
}

/* The library viewer - markup in _LibraryViewer.cshtml, driven by library-viewer.js. The frame and
   the video fill the dialog's width and most of the viewport's height, since a PDF in a letterbox
   is a PDF nobody reads. Above the modal layer (1055) so that on Account Search, where it opens
   over the account modal, it is the one on top; the second backdrop Bootstrap appends is lifted
   with it, so the account modal dims behind the viewer rather than showing through beside it */
.modal.library-viewer {
  z-index: 1090;
}

.modal-backdrop ~ .modal-backdrop {
  z-index: 1085;
}

/* The wait sits over the stage rather than in place of the element, so the element loads at full
   size from the moment it is added. The stage keeps a little height of its own for the spinner to
   sit in before there is an element to cover */
.library-viewer-stage {
  position: relative;
  min-height: 12rem;
}

.library-viewer-loading {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.library-viewer-content iframe,
.library-viewer-content video {
  display: block;
  width: 100%;
  height: 78vh;
  border: 0;
}

.library-viewer-content video {
  background-color: #000;
}
