/* Status GPS administration R47
 * One document scrollbar, explicit event-scoped bulk actions and compact
 * selection controls. Horizontal table scrolling remains local to the table.
 */

body.page-edit_gps.status-document-scroll-v34,
body.page-edit_gps.status-document-scroll-v34 #container,
body.page-edit_gps.status-document-scroll-v34 .status-page-container,
body.page-edit_gps.status-document-scroll-v34 .status-admin-page,
body.page-edit_gps.status-document-scroll-v34 .status-admin-shell,
body.page-edit_gps.status-document-scroll-v34 .status-section-card,
body.page-edit_gps.status-document-scroll-v34 .status-section-card > .card-body,
body.page-edit_gps.status-document-scroll-v34 .status-gps-bulk-form {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: visible !important;
}

body.page-edit_gps .status-admin-page.status-admin-page {
  width: 100% !important;
  margin: 0 !important;
  padding: 1rem 1.25rem calc(2rem + var(--status-safe-bottom, 0px)) !important;
  overflow-x: clip !important;
}

body.page-edit_gps .status-admin-shell {
  max-width: 1500px;
}

body.page-edit_gps .status-section-card > .card-body {
  overflow: visible !important;
}

body.page-edit_gps .table-responsive {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

body.page-edit_gps .status-gps-bulk-form {
  display: block;
  width: 100%;
}

body.page-edit_gps .status-gps-bulk-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
  margin-left: auto;
}

body.page-edit_gps .status-gps-bulk-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .3rem;
  min-height: 38px;
}

body.page-edit_gps .status-gps-bulk-actions .material-icons {
  margin: 0 !important;
  font-size: 19px;
}

body.page-edit_gps .status-gps-select-column {
  box-sizing: border-box !important;
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  padding-right: .55rem !important;
  padding-left: .75rem !important;
  text-align: center;
}

body.page-edit_gps .status-gps-select-column .custom-control {
  width: 1.25rem;
  min-height: 1.25rem;
  margin: 0 auto;
  padding-left: 1.25rem;
}

body.page-edit_gps .status-gps-select-column .custom-control-label::before,
body.page-edit_gps .status-gps-select-column .custom-control-label::after {
  top: 0;
  left: -1.25rem;
}

body.page-edit_gps #gpsBulkDelete:disabled {
  opacity: .52;
  cursor: not-allowed;
}

@supports not (overflow: clip) {
  body.page-edit_gps .status-admin-page.status-admin-page {
    overflow-x: hidden !important;
  }
}

@media (max-width: 767.98px) {
  body.page-edit_gps .status-gps-workspace-tabs .nav-link {
    min-width: 0;
    gap: .2rem;
    padding: .55rem .35rem;
    font-size: .82rem;
    line-height: 1.15;
    white-space: nowrap;
  }

  body.page-edit_gps .status-gps-workspace-tabs .nav-link .material-icons {
    font-size: 1.2rem;
  }

  body.page-edit_gps .status-gps-workspace-tabs .nav-link .badge {
    padding: .18rem .32rem;
    font-size: .68rem;
  }

  body.page-edit_gps .status-admin-page.status-admin-page {
    padding: .75rem .75rem calc(1.25rem + var(--status-safe-bottom, 0px)) !important;
  }

  body.page-edit_gps .status-admin-filter-row {
    align-items: stretch;
  }

  body.page-edit_gps .status-gps-filter-note,
  body.page-edit_gps .status-gps-bulk-actions {
    width: 100%;
  }

  body.page-edit_gps .status-gps-bulk-actions {
    justify-content: space-between;
    padding-top: .1rem;
  }

  body.page-edit_gps .status-gps-bulk-actions .btn {
    min-height: 42px;
  }
}

.status-gps-owner-event {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-bottom: .8rem;
  padding: .65rem .75rem;
  border: 1px solid #d9e2ec;
  border-radius: .55rem;
  background: #f8fafc;
  color: #334155;
}

.status-gps-owner-event .material-icons {
  flex: 0 0 auto;
  margin: 0 !important;
  color: #007bff;
  font-size: 20px;
}

/* R59: stale GPS points stay visible for operational awareness between 10 and
 * 20 minutes, but are visually de-emphasised and explicitly labelled. */
.status-gps-stale {
  opacity: .58;
  filter: saturate(.55);
}

.status-gps-stale-badge {
  margin-left: .2rem;
  vertical-align: middle;
  font-size: .68rem;
  white-space: nowrap;
}

/* R60: GPS device workspace aligned with the compact Bootstrap/Hyper-style
 * admin language. Desktop remains a table; phones receive a purposeful card
 * hierarchy instead of every desktop column stacked at full height. */
body.page-edit_gps .status-admin-search .input-group {
  flex-wrap: nowrap;
}

body.page-edit_gps .status-admin-search .input-group-text,
body.page-edit_gps .status-admin-search .status-search-clear,
body.page-edit_gps .status-gps-add-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.page-edit_gps .status-admin-search .input-group-text,
body.page-edit_gps .status-admin-search .status-search-clear {
  width: 2.75rem;
  min-width: 2.75rem;
  height: 2.75rem;
  min-height: 2.75rem;
  padding: 0;
  border-color: #d7dee8;
  background: #fff !important;
}

body.page-edit_gps .status-admin-search .form-control {
  height: 2.75rem;
  min-height: 2.75rem;
  border-color: #d7dee8;
  box-shadow: none;
}

body.page-edit_gps .status-admin-search .material-icons,
body.page-edit_gps .status-gps-add-button .material-icons {
  margin: 0 !important;
  line-height: 1;
}

body.page-edit_gps .status-gps-add-button {
  width: 2.75rem;
  min-width: 2.75rem;
  height: 2.75rem;
  min-height: 2.75rem;
  padding: 0;
  border-radius: .62rem;
}

@media (max-width: 767.98px) {
  body.page-edit_gps .status-admin-filter-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: center !important;
    gap: .55rem !important;
    margin-bottom: .7rem;
  }

  body.page-edit_gps .status-admin-search {
    width: 100% !important;
    min-width: 0;
  }

  body.page-edit_gps .status-gps-filter-note {
    grid-column: 1 / -1;
    display: flex;
    align-items: flex-start;
    gap: .35rem;
    padding: .15rem .1rem 0;
    line-height: 1.3;
  }

  body.page-edit_gps .status-gps-bulk-actions {
    position: static;
    grid-column: 1 / -1;
    width: 100%;
    margin: 0;
    padding: .45rem .55rem;
    border: 1px solid #e1e6ed;
    border-radius: .62rem;
    background: #f8fafc;
    box-shadow: none;
  }

  body.page-edit_gps .status-gps-table > tbody > tr.status-bs-table-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding: 0 !important;
    border-radius: .82rem !important;
  }

  body.page-edit_gps .status-gps-table > tbody > tr.status-bs-table-row > td.status-bs-table-primary {
    min-height: 3.15rem !important;
    padding: .8rem 3.15rem !important;
  }

  body.page-edit_gps .status-gps-table > tbody > tr.status-bs-table-row > td.status-bs-table-select {
    top: .62rem !important;
    left: .62rem !important;
    width: 2.35rem !important;
    height: 2.35rem !important;
    min-height: 2.35rem !important;
    border: 1px solid #d7dee8 !important;
    border-radius: .58rem !important;
    background: #f7f9fc !important;
  }

  body.page-edit_gps .status-gps-table > tbody > tr.status-bs-table-row > td.status-bs-table-select .status-bs-table-cell-content,
  body.page-edit_gps .status-gps-table > tbody > tr.status-bs-table-row > td.status-bs-table-select .custom-control {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
  }

  body.page-edit_gps .status-gps-table .status-gps-select-column .custom-control-label {
    position: absolute;
    inset: 0;
    margin: 0;
  }

  body.page-edit_gps .status-gps-table .status-gps-select-column .custom-control-label::before,
  body.page-edit_gps .status-gps-table .status-gps-select-column .custom-control-label::after {
    top: 50% !important;
    left: 50% !important;
    width: 1.18rem;
    height: 1.18rem;
    transform: translate(-50%, -50%);
  }

  body.page-edit_gps .status-gps-table > tbody > tr.status-bs-table-row > td.status-bs-table-actions {
    top: .62rem !important;
    right: .62rem !important;
  }

  body.page-edit_gps .status-gps-table .status-actions-btn {
    display: grid !important;
    width: 2.55rem !important;
    min-width: 2.55rem !important;
    height: 2.55rem !important;
    min-height: 2.55rem !important;
    padding: 0 !important;
    place-items: center;
    font-size: 0 !important;
  }

  body.page-edit_gps .status-gps-table .status-actions-btn .material-icons {
    margin: 0 !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
  }

  body.page-edit_gps .status-gps-device-cell {
    min-width: 0;
    align-items: center;
    gap: .55rem;
  }

  body.page-edit_gps .status-gps-device-icon {
    flex-basis: 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: .58rem;
  }

  body.page-edit_gps .status-gps-device-copy strong {
    max-width: 100%;
    font-size: .96rem;
    line-height: 1.25;
    white-space: normal;
  }

  body.page-edit_gps .status-gps-device-copy small {
    overflow: hidden;
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.page-edit_gps .status-gps-table > tbody > tr.status-bs-table-row > td:nth-child(3) {
    grid-column: 1 / -1 !important;
    min-height: 0 !important;
  }

  body.page-edit_gps .status-gps-table > tbody > tr.status-bs-table-row > td:nth-child(4),
  body.page-edit_gps .status-gps-table > tbody > tr.status-bs-table-row > td:nth-child(5) {
    grid-column: auto !important;
    min-height: 4.75rem !important;
  }

  body.page-edit_gps .status-gps-location-cell {
    min-width: 0;
  }

  body.page-edit_gps .status-gps-location-telemetry {
    display: none;
  }

  body.page-edit_gps .status-gps-telemetry.status-telemetry-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .25rem;
  }

  body.page-edit_gps .status-telemetry-metric {
    min-width: 0;
    align-items: center;
  }

  body.page-edit_gps .status-telemetry-metric .status-telemetry-icon {
    flex-basis: 1.8rem !important;
    width: 1.8rem !important;
    min-width: 1.8rem !important;
    height: 1.8rem !important;
  }

  body.page-edit_gps .status-telemetry-value {
    font-size: .67rem;
  }

  body.page-edit_gps .status-gps-table .status-action-menu.show {
    position: fixed !important;
    z-index: 22050 !important;
    top: auto !important;
    right: max(.65rem, env(safe-area-inset-right)) !important;
    bottom: max(.65rem, env(safe-area-inset-bottom)) !important;
    left: max(.65rem, env(safe-area-inset-left)) !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    max-height: min(65dvh, 30rem) !important;
    padding: .5rem !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: none !important;
    border-radius: .9rem;
    box-shadow: 0 1.1rem 3rem rgba(15, 23, 42, .3);
  }

  body.page-edit_gps .status-gps-table .status-action-menu .dropdown-item,
  body.page-edit_gps .status-gps-table .status-action-menu .dropdown-item-text {
    display: grid !important;
    grid-template-columns: 1.55rem minmax(0, 1fr);
    width: 100% !important;
    min-width: 0 !important;
    align-items: center;
    gap: .65rem;
    word-break: normal !important;
    overflow-wrap: break-word;
    white-space: normal !important;
  }
}
