body {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  overflow-y: scroll;
}
body .main-content img {
  max-width: 100%;
  height: auto;
}
body table {
  caption-side: top;
}
body .hidden-fields {
  position: absolute;
  pointer-events: none;
  height: 0;
  width: 0;
}

:root {
  --primary-blue: #0055a5;
  --bs-blue: var(--primary-blue);
  --bs-primary: var(--primary-blue);
  --bs-primary-rgb: 0, 85, 165;
}

.btn-primary {
  --bs-btn-bg: var(--primary-blue);
  --bs-btn-border-color: var(--primary-blue);
}

.nav {
  --bs-nav-pills-link-active-bg: var(--primary-blue);
}

.container.container--admin {
  max-width: 1800px;
}

/* TODO it would be nice to add bootstrap to our sass build to use things like `map-get($grid-breakpoints, 'xxl')`
    instead of copying over bootstrap's current values manually */
@media (min-width: 1400px) {
  .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    /* allow container at largest breakpoint to grow to 66% of screen width (will grow for screen width > 2000) */
    max-width: max(1320px, 66vw);
  }
}
/* prevents height glitch when hovering */
.file-drop-zone.clickable {
  border: none;
  outline: 1px dashed #aaa;
}
.file-drop-zone.clickable:hover, .file-drop-zone.clickable:active {
  border: none;
  outline: 2px dashed #999;
}

.width-fill-available {
  width: -webkit-fill-available;
}

.blog-tag {
  font-size: 0.8rem;
  color: #0055a5;
  border: 1px solid #0055a5;
  border-radius: 0.375rem;
  padding: 0.2rem 0.5rem;
  text-decoration: none;
}
.blog-tag.active {
  background-color: #0055a5;
  color: white;
}

.blog-filter {
  background-color: rgba(var(--bs-light-rgb), 1);
  border-radius: var(--bs-border-radius);
  margin-bottom: 1rem;
  font-size: 0.875rem;
  padding: 0.375rem 0.75rem;
  display: flex;
  align-items: flex-start;
  gap: 2rem;
}
@media (min-width: 992px) {
  .blog-filter {
    position: sticky;
    top: 16rem;
    z-index: 1000;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  }
}
.blog-filter__headline {
  font-size: 0.875rem;
  line-height: var(--bs-body-line-height);
  color: #707070;
  font-weight: normal;
  margin: 0;
}

.tag-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 1.5rem;
}
.tag-grid .blog-tag {
  cursor: pointer;
  transition: all 0.2s linear;
}
.tag-grid .blog-tag:hover {
  background-color: #0055a5;
  color: white;
}

.breadcrumb-wrapper {
  background-color: rgb(241, 241, 241);
}
@media (min-width: 992px) {
  .breadcrumb-wrapper--sticky {
    position: sticky;
    top: 169px;
    z-index: 1;
  }
}
.breadcrumb-wrapper .breadcrumb .breadcrumb-item + .breadcrumb-item::before {
  font-family: bootstrap-icons !important;
}
.breadcrumb-wrapper .breadcrumb .breadcrumb-item {
  font-size: 0.8rem;
}
.breadcrumb-wrapper .breadcrumb .breadcrumb-item a {
  color: var(--primary-blue);
  text-decoration: none;
}
.breadcrumb-wrapper .breadcrumb .breadcrumb-item a:hover {
  text-decoration: underline;
}

.clickable {
  cursor: pointer;
  transition: background-color 0.2s linear;
}
.clickable:hover {
  background-color: rgb(241, 241, 241);
}

.tree-level {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 5px;
}
.tree-level .tree-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 5px;
}
.tree-level .tree-item:not(.sortable-disabled) > .tree-item__inner {
  cursor: grab;
}
.tree-level .tree-item:not(.sortable-disabled) > .tree-item__inner:hover {
  background-color: rgb(241, 241, 241);
}
.tree-level .tree-item .tree-item__inner {
  padding: 5px 5px 5px 10px;
  border: 1px solid rgb(114, 114, 114);
  transition: all linear 0.3s;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 30px;
}
.tree-level .tree-level {
  margin-left: 30px;
}

.topic-list {
  --_padding: .5rem;
  background-color: rgb(248, 249, 250);
  transition: background-color linear 0.1s;
  border: 1px solid var(--bs-primary-border-subtle);
  border-radius: var(--bs-border-radius);
  margin-bottom: 0.5rem;
  padding: var(--_padding);
}
.topic-list:hover {
  background-color: rgb(232, 232, 232);
}
.topic-list.topic-list--subtopic {
  --_margin-right: .25rem;
  font-size: 0.8em;
  margin-top: -0.25rem;
  margin-left: 1rem;
  margin-right: var(--_margin-right);
  padding: calc(var(--_padding) - var(--_margin-right));
  border-color: var(--bs-info-border-subtle);
}
.topic-list.topic-list--subtopic + .topic-list:not(.topic-list--subtopic) {
  margin-top: 0.75rem;
}

.comments {
  margin-bottom: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.comments .comment {
  border-radius: 5px;
  padding: 1rem;
  border: 1px solid rgb(232, 232, 232);
}
.comments .comment:nth-child(odd) {
  background-color: rgb(248, 249, 250);
}

.quote {
  padding-left: 0.5rem;
}
.quote .quote-created-by {
  font-size: 0.8rem;
  font-weight: 500;
  margin-bottom: 0.375rem;
}
.quote .quote-content {
  background-color: rgb(241, 241, 241);
  padding: 0.5rem;
  border: 1px solid rgb(114, 114, 114);
  border-radius: 0.375rem;
}
.quote .quote-content *:last-child {
  margin-bottom: 0;
}

.hashdb .settings-search, .hashdb .settings-query, .hashdb .settings-dump {
  display: none;
}
.hashdb.configuration[data-mode=QUERY] .settings-query {
  display: flex;
}
.hashdb.configuration[data-mode=SEARCH] .settings-search {
  display: flex;
}
.hashdb.configuration[data-mode=DUMP] .settings-dump {
  display: flex;
}

@media (min-width: 992px) {
  .top-bar-sticky {
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: white;
  }
}

.topmenu-wrapper {
  background: url("../img/bg-dots.svg") 120px -34px no-repeat;
  background-size: auto 300%;
}
.topmenu-wrapper .topmenu {
  font-size: 0.8rem;
}
.topmenu-wrapper .topmenu .nav-link {
  border-radius: 0.375rem;
}
.topmenu-wrapper .topmenu .nav-link:hover {
  color: white;
  background-color: var(--primary-blue);
}

#header-logo {
  height: 70px;
  width: auto;
}

.latest-articles.carousel {
  margin-bottom: 1rem;
}
.latest-articles.carousel .carousel-control-prev {
  left: -1.5rem;
}
.latest-articles.carousel .carousel-control-next {
  right: -1.5rem;
}
.latest-articles.carousel .carousel-inner {
  padding: 0 0 1.5rem;
}
.latest-articles.carousel .carousel-indicators {
  margin: 0;
  bottom: 0;
}
.latest-articles .card {
  outline: 2px solid transparent;
  outline-offset: -2px;
  transition: outline-color 0.25s;
}
.latest-articles .card .card-header .header-link {
  color: black;
  text-decoration: none;
  display: block;
  word-break: break-word;
  font-weight: bold;
  font-size: 1.2rem;
  line-height: 1.3;
  margin-bottom: 0.3rem;
}
.latest-articles .card:hover {
  outline-color: #0055a5;
}

.spinner-background {
  opacity: 0.5;
  background: #000;
  width: 100%;
  height: 100%;
  z-index: 10;
  top: 169px;
  left: 0;
  position: fixed;
  display: none;
}
.spinner-background #spinner-wrapper {
  display: grid;
  align-items: center;
  justify-content: center;
  margin-top: 350px;
}
.spinner-background #spinner-wrapper #spinner {
  border: 20px solid #EAF0F6;
  border-radius: 50%;
  border-top: 20px solid #0055a5;
  width: 200px;
  height: 200px;
  animation: spinner 4s linear infinite;
}
.spinner-background #spinner-wrapper #percent {
  display: grid;
  position: relative;
  align-items: center;
  justify-content: center;
  color: #0055a5;
  font-size: 4rem;
}

@keyframes spinner {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.main-navigation .navbar-nav .nav-item {
  font-size: 0.8rem;
  position: relative;
}
.main-navigation .navbar-nav .nav-item::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 3px;
  background-color: white;
  bottom: -8px;
  opacity: 0;
}
.main-navigation .navbar-nav .nav-item.active::after {
  opacity: 1;
}
.main-navigation .navbar-nav .nav-item.active::before {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 5px 6px 5px;
  border-color: transparent transparent #ffffff transparent;
}
.main-navigation .navbar-nav .nav-item .nav-link {
  color: white;
  position: relative;
}
.main-navigation .navbar-nav .nav-item:hover::after {
  opacity: 1;
}
@media (min-width: 992px) {
  .main-navigation--sticky {
    position: sticky;
    top: 118px;
    z-index: 1000;
  }
}

.messages-grid {
  display: grid;
  grid-template-rows: auto;
  grid-template-columns: calc(25% - 0.8rem) calc(75% - 0.8rem);
  gap: 1.6rem;
  max-height: 100%;
}

.message-contact {
  position: relative;
  border-radius: 0.375rem;
  background-color: rgb(241, 241, 241);
  padding: 0.6rem 0.8rem;
  display: flex;
  flex-direction: column;
  justify-items: flex-start;
  align-items: flex-start;
  gap: 0.2rem;
  color: black;
  transition: background-color 0.15s ease-in-out;
  text-decoration: none;
  line-height: 1;
  border: 1px solid rgb(241, 241, 241);
}
.message-contact:hover {
  background-color: rgb(114, 114, 114);
  color: white;
}
.message-contact.active {
  border: 1px solid #0055a5;
}
.message-contact .contact__name {
  font-weight: 700;
  font-size: 0.9rem;
}
.message-contact .contact__subject {
  font-size: 0.75rem;
}
.message-contact .contact__badge {
  position: absolute;
  top: -5px;
  right: -5px;
}

.messages-container {
  position: relative;
  background-color: #fbfbfb;
  border: 1px solid rgb(241, 241, 241);
  border-radius: 0.375rem;
  height: calc(100vh - 320px);
  padding-top: 2.7rem;
  box-shadow: inset 0 0 5px 0 rgba(150, 150, 150, 0.2);
}
.messages-container .messages__header {
  position: absolute;
  top: 0;
  width: 100%;
  background-color: #eee;
  padding: 0.8rem 5rem;
  font-size: 1rem;
  text-align: center;
  font-weight: 500;
  border-bottom: 1px solid rgb(114, 114, 114);
  line-height: 1;
}
.messages-container .messages__header .message__actions {
  display: flex;
  gap: 0.5rem;
  position: absolute;
  right: 0.3rem;
  top: 0.3rem;
}
.messages-container .messages__history {
  display: grid;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  align-content: start;
  gap: 1rem;
  justify-items: end;
  overflow-y: auto;
  height: calc(100% - 6rem);
  padding: 1rem 5% 1.5rem;
}
.messages-container .messages__history .message {
  max-width: 500px;
  width: 100%;
  border-radius: 1rem;
  padding: 0.5rem;
  box-shadow: 0 0.3px 0.6px rgba(0, 0, 0, 0.02), 0 0.7px 1.3px rgba(0, 0, 0, 0.028), 0 1.3px 2.5px rgba(0, 0, 0, 0.035), 0 2.2px 4.5px rgba(0, 0, 0, 0.042), 0 4.2px 8.4px rgba(0, 0, 0, 0.05), 0 10px 20px rgba(0, 0, 0, 0.07);
}
.messages-container .messages__history .message.message--received {
  background-color: rgb(241, 241, 241);
  place-self: start;
}
.messages-container .messages__history .message.message--sent {
  place-self: end;
  background-color: #0055a5;
  color: white;
}

.message-input-wrapper {
  position: absolute;
  inset: auto 2% 2%;
  opacity: 1;
  background-color: white;
  border-radius: 0.375rem;
  padding: 5px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}
.message-input-wrapper .message__input-field {
  width: 100%;
  flex: 1 1 auto;
}
.message-input-wrapper .message__input-field textarea {
  height: 70px;
}

.sidebar-navigation .nav-link.active, .sidebar-navigation .nav-link:hover {
  color: white;
  background-color: var(--primary-blue);
}
.sidebar-navigation ul {
  list-style-type: none;
  padding-left: 1rem;
}

#software-version-list .software-version .label {
  font-size: 0.8rem;
  font-weight: bold;
  display: block;
}
#software-version-list .software-version__id {
  width: 20%;
  max-width: 120px;
}
#software-version-list .software-version__os, #software-version-list .software-version__validation {
  width: 40%;
}
#software-version-list .software-version__actions {
  margin-left: auto;
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
}
#software-version-list .software-version .accordion-button {
  flex-direction: row-reverse;
  justify-content: flex-end;
  padding: 10px;
}
#software-version-list .software-version .accordion-button::after {
  margin: 0 1rem 0 0;
}

.sortable.list-group .list-group-item {
  cursor: grab;
  transition: background-color linear 0.3s;
}
.sortable.list-group .list-group-item:hover {
  background-color: rgb(241, 241, 241);
}

.sortable-placeholder {
  height: 3em;
  line-height: 3em;
  background-color: rgb(241, 241, 241);
  display: block;
  width: 100%;
  flex: 0 0 auto;
}

@media (min-width: 992px) {
  .sticky-sidebar {
    top: 2.5rem;
    position: sticky;
  }
  .sticky-sidebar--blog {
    top: 15rem;
  }
}

.table-filter-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 1rem;
}
.table-filter-toolbar .form-label {
  font-size: 0.8rem;
  margin-bottom: 0.25rem;
}

.accordion.tree-item .accordion-item {
  border: none;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 5px;
}
.accordion.tree-item .accordion-item > .tree-item__inner {
  padding: 0 5px 0 0;
}
.accordion.tree-item .accordion-item > .tree-item__inner .accordion-button {
  flex-direction: row-reverse;
  justify-content: flex-end;
  width: auto;
  padding: 10px;
}
.accordion.tree-item .accordion-item > .tree-item__inner .accordion-button::after {
  margin: 0;
}

/*# sourceMappingURL=style.css.map */
