html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.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;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  overflow-x: hidden;
}

img,
svg,
video,
canvas {
  max-width: 100%;
  height: auto;
}

.container,
.container-fluid {
  padding-left: max(.75rem, env(safe-area-inset-left));
  padding-right: max(.75rem, env(safe-area-inset-right));
}

.card,
.table-responsive,
.modal-content {
  max-width: 100%;
}

.card {
  overflow-wrap: anywhere;
}

.form-control,
.form-select,
.btn {
  max-width: 100%;
}

.table-responsive {
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 1199.98px) {
  .container {
    max-width: 100%;
  }
}

@media (max-width: 991.98px) {
  body {
    margin-bottom: 76px;
  }

  .btn,
  .form-control,
  .form-select {
    min-height: 44px;
  }

  .table-responsive {
    border-radius: .9rem;
  }
}

@media (max-width: 767.98px) {
  html {
    font-size: 14px;
  }

  .container,
  .container-fluid {
    padding-left: .9rem;
    padding-right: .9rem;
  }

  h1 {
    font-size: clamp(1.8rem, 7vw, 2.35rem);
  }

  h2 {
    font-size: clamp(1.35rem, 5vw, 1.75rem);
  }

  h3 {
    font-size: clamp(1.15rem, 4.3vw, 1.45rem);
  }

  .btn-group,
  .input-group {
    flex-wrap: wrap;
  }

  .modal-dialog {
    margin: .65rem;
  }

  .modal-dialog.modal-xl,
  .modal-dialog.modal-lg {
    max-width: calc(100vw - 1rem);
  }

  .table-responsive {
    margin-left: -.1rem;
    margin-right: -.1rem;
  }

  .btn {
    white-space: normal;
  }

  .badge {
    white-space: normal;
  }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .modal-dialog {
    max-width: min(92vw, 900px);
  }
}

.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;
}
