html {
  font-size: 18px;
}

.btn:focus,
.btn:active:focus,
button.btn:focus,
a.btn:focus,
.btn-link.nav-link:focus,
.nav-link:focus,
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
a:focus-visible,
summary:focus-visible {
  outline: 3px solid #0b5ed7 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  min-height: 100vh;
  line-height: 1.65;
  color: #1f2937;
  background: #f5f7fa;
}

.btn,
.form-control,
.form-select {
  min-height: 3rem;
}

.nav-link {
  min-height: 3rem;
  display: flex;
  align-items: center;
}

.app-header {
  position: sticky;
  top: 0;
  z-index: 1040;
}

.app-shell {
  min-height: calc(100vh - 122px);
}

.app-sidebar {
  width: 17rem;
  background: #fff;
  border-right: 1px solid var(--bs-border-color);
}

.app-sidebar .offcanvas-body {
  align-items: stretch;
}

.app-sidebar .nav-link {
  color: #26374a;
}

.app-sidebar .nav-link.active {
  background: #0b5ed7;
  color: #fff;
}

.app-content {
  min-width: 0;
  padding: 1.5rem;
  width: 100%;
}

.app-user-summary {
  line-height: 1.15;
}

.app-user-meta {
  font-size: 1rem;
}

.page-intro {
  max-width: 46rem;
  color: #4b5563;
}

.task-card {
  border: 2px solid transparent;
  border-radius: .75rem;
}

.task-card:focus-within {
  border-color: #0b5ed7;
}

.responsive-records {
  width: 100%;
  overflow-x: auto;
}

.responsive-records table {
  min-width: 42rem;
}

.details-disclosure {
  border-top: 1px solid var(--bs-border-color);
  padding-top: 1rem;
}

.details-disclosure summary {
  cursor: pointer;
  font-weight: 600;
  min-height: 3rem;
  display: flex;
  align-items: center;
}

.app-empty-state {
  border: 1px solid var(--bs-border-color);
  border-left: .35rem solid #0b5ed7;
  background: #fff;
  color: #4b5563;
  padding: 1rem;
}

.branch-progress-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: 1rem;
}

.branch-progress-cards dd {
  margin-bottom: .35rem;
  text-align: right;
}

td,
th,
.card,
.page-intro,
.badge,
.btn,
.breadcrumb,
.pagination,
.app-user-summary,
.form-control,
.form-select,
textarea {
  overflow-wrap: anywhere;
}

.d-flex,
.row,
.pagination {
  min-width: 0;
}

@media (min-width: 992px) {
  .app-shell {
    display: grid;
    grid-template-columns: 17rem minmax(0, 1fr);
  }

  .app-sidebar {
    position: sticky;
    top: 65px;
    height: calc(100vh - 65px);
    visibility: visible !important;
  }
}

@media (max-width: 575.98px) {
  .app-user-summary {
    max-width: 9rem;
  }

  .app-content {
    padding: 1rem;
  }

  .btn,
  .btn-link,
  .page-link {
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0s !important;
    transition-delay: 0s !important;
  }
}

.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;
}
