@media (max-width: 979px) {
  body,
  .content,
  #mainmenu {
    min-width: 0 !important;
  }

  html {
    -webkit-text-size-adjust: 100%;
  }

  body:not(.modal-open) {
    overflow-x: hidden;
  }

  .bold-label {
    text-align: left !important;
  }

  #alert_modal:not(.in),
  #pleaseWaitDialog:not(.in) {
    display: none !important;
  }

  #alert_modal {
    width: 100% !important;
    max-width: 100vw !important;
  }

  .modal:not(.bootbox):not(.modal-form-edit):not(.modal-screening-report):not(.rm-column-visibility-modal):not(.rm-alert-modal) {
    position: fixed !important;
    top: 10px !important;
    right: 2% !important;
    left: 2% !important;
    width: 96% !important;
    max-width: 96vw !important;
    margin: 0 !important;
    margin-left: 0 !important;
    box-sizing: border-box;
  }

  .modal-body:not(.rm-add-shift-modal-body):not(.rm-column-visibility-modal-body):not(.rm-alert-modal-body),
  .bootbox .modal-body {
    overflow: auto !important;
    -webkit-overflow-scrolling: touch !important;
    max-height: calc(100vh - 120px) !important;
  }

  #mainmenu {
    min-height: 44px;
    height: auto !important;
  }

  input[type="text"],
  input[type="password"],
  input[type="email"],
  select {
    margin: 0 0 8px 0 !important;
  }

  input[type="submit"] {
    width: auto !important;
    min-width: 100px;
  }

  input[type="checkbox"] {
    width: 20px !important;
  }

  .rotation_change {
    margin-left: 0 !important;
  }

  .input-medium {
    width: 100% !important;
    max-width: 100%;
  }

  .table th,
  .table td {
    padding: 8px 4px;
  }

  label:not(.rm-requirement-who-option):not(.form-check-label) {
    float: none;
    display: block;
    margin-bottom: 4px;
  }

  /* Requirement Tools — keep Instructor/Student radios side by side (loads after site.css) */
  .rm-requirement-tool-page .rm-requirement-who-options,
  #who_concerns_radios .rm-requirement-who-options {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 6px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .rm-requirement-tool-page label.rm-requirement-who-option,
  #who_concerns_radios label.rm-requirement-who-option {
    display: flex !important;
    flex: 1 1 0 !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 8px 4px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    text-align: center !important;
    float: none !important;
  }

  .rm-requirement-tool-page label.rm-requirement-who-option span,
  #who_concerns_radios label.rm-requirement-who-option span {
    display: block;
    word-break: break-word;
  }

  /*
   * BS2 .modal uses left:50%, negative margin-left, min-width:400px — breaks on phones.
   * Center with translateX(-50%) and a fixed viewport-based width (loads after site.css).
   */
  body > .modal.fade.in.modal-form-edit,
  body > .modal.fade.in.modal-screening-report,
  body > .modal.fade.in.rm-form-edit-modal,
  body > .modal.fade.in.rm-column-visibility-modal,
  body > #alert_modal.modal.fade.in,
  .bootbox.modal.fade.in,
  .bootbox.modal.in {
    position: fixed !important;
    top: 5% !important;
    left: 14px !important;
    right: 14px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
    -webkit-transform: none !important;
    box-sizing: border-box !important;
  }

  body > #alert_modal.modal.fade.in {
    display: flex !important;
    flex-direction: column !important;
    max-height: calc(100vh - 20px) !important;
    overflow: hidden !important;
    z-index: 1060 !important;
    pointer-events: auto !important;
  }

  body > #alert_modal.modal.fade.in .modal-dialog,
  body > #alert_modal.modal.fade.in .modal-content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box;
  }

  body > #alert_modal.modal.fade.in .modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  body > #alert_modal.modal.fade.in .modal-footer {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px;
    width: 100% !important;
    padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px)) !important;
    box-sizing: border-box;
  }

  body > #alert_modal.modal.fade.in .modal-footer .btn {
    width: 100% !important;
    margin: 0 !important;
    min-height: 40px;
    box-sizing: border-box;
    white-space: normal;
  }

  body > .modal.fade.in.rm-column-visibility-modal {
    display: flex !important;
    flex-direction: column !important;
    max-height: calc(100vh - 20px) !important;
    overflow: hidden !important;
    z-index: 1060 !important;
  }

  body > .modal.fade.in.rm-column-visibility-modal .modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  body > .modal.fade.in.rm-column-visibility-modal .modal-footer {
    flex: 0 0 auto !important;
    width: 100% !important;
  }

  .bootbox.modal.fade.in.rm-turbo-review-modal,
  .bootbox.modal.in.rm-turbo-review-modal {
    display: flex !important;
    flex-direction: column !important;
    top: 10px !important;
    height: calc(100vh - 20px) !important;
    max-height: calc(100vh - 20px) !important;
    overflow: hidden !important;
    pointer-events: auto !important;
  }

  .bootbox.modal.rm-turbo-review-modal.in .modal-dialog,
  .bootbox.modal.rm-turbo-review-modal.in .modal-content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box;
  }

  .bootbox.modal.rm-turbo-review-modal.in .modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .bootbox.modal.rm-turbo-review-modal.in .modal-footer {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px;
    width: 100% !important;
    padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px)) !important;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
    isolation: isolate;
    background: #fff !important;
    border-radius: 0 !important;
    box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.08);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  .bootbox.modal.rm-turbo-review-modal.in .modal-footer .btn {
    width: 100% !important;
    margin: 0 !important;
    min-height: 44px;
    box-sizing: border-box;
    white-space: normal;
    border-radius: 4px !important;
  }

  .bootbox.modal.rm-turbo-review-modal.in .bootbox-body {
    overflow: hidden !important;
  }

  .bootbox.modal.rm-turbo-review-modal.in .rm-turbo-review-scroll {
    overflow: hidden !important;
  }

  .bootbox.modal.rm-turbo-review-modal.in .rm-turbo-review-req-table .rm-turbo-review-req-row {
    overflow: hidden;
    contain: layout paint;
  }

  .bootbox.modal.rm-turbo-review-modal.in .rm-turbo-review-req-table .rm-turbo-review-req-row td.rm-turbo-review-accept,
  .bootbox.modal.rm-turbo-review-modal.in .rm-turbo-review-req-table .rm-turbo-review-req-row td.rm-turbo-review-reject {
    display: block !important;
    width: 50% !important;
    float: left !important;
    box-sizing: border-box;
  }

  .bootbox.modal.rm-turbo-review-modal.in .rm-turbo-review-req-table .rm-turbo-review-req-row::after {
    content: "";
    display: table;
    clear: both;
  }
}
