/* GeoSMS V35 - ajustes responsive compartidos */
html, body { max-width: 100%; overflow-x: hidden; }
img, svg, video, canvas { max-width: 100%; }
.row > *, .form-control, .form-select, .input-group, .btn-group, .navbar-brand { min-width: 0; }
.navbar-brand { max-width: 100%; }
.navbar-brand img { width: auto; max-width: min(145px, 42vw); height: auto; object-fit: contain; }
[data-app-name], [data-app-suite] { overflow-wrap: anywhere; }
.geosms-suite-badge { font-size: .68rem; letter-spacing: .08em; font-weight: 700; }
.geosms-break-anywhere { overflow-wrap: anywhere; word-break: break-word; }
.geosms-map-canvas { min-height: 240px; }
.modal-content { min-width: 0; }
.modal-body { min-width: 0; overflow-x: hidden; }
.modal-body .row > * { min-width: 0; }
.modal-body input, .modal-body textarea, .modal-body select { max-width: 100%; }
.modal-footer { gap: .5rem; }
#photoPreview img, .carousel-item img { max-width: 100%; }

@media (max-width: 767.98px) {
  .navbar > .container,
  .navbar > .container-fluid { align-items: flex-start; gap: .5rem; }
  .navbar-brand { flex: 1 1 100%; white-space: normal; line-height: 1.15; }
  .navbar .geosms-nav-actions { width: 100%; display: grid !important; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .4rem !important; }
  .navbar .geosms-nav-actions > .btn,
  .navbar .geosms-nav-actions > a.btn { width: 100%; white-space: normal; }
  .geosms-mobile-grid-2 { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem !important; }
  .geosms-mobile-grid-2 > * { min-width: 0; width: 100%; }
  .geosms-mobile-stack { display: grid !important; grid-template-columns: 1fr; gap: .5rem !important; }
  .geosms-mobile-stack > * { width: 100% !important; max-width: 100% !important; }
  .geosms-mobile-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .geosms-mobile-scroll-x > * { min-width: max-content; }
  .modal { padding: 0 !important; }
  .modal-dialog:not(.modal-fullscreen):not(.modal-fullscreen-sm-down) {
    width: auto;
    max-width: none;
    margin: .5rem;
  }
  .modal-dialog-centered:not(.modal-fullscreen):not(.modal-fullscreen-sm-down) { min-height: calc(100% - 1rem); }
  .modal-content:not(.h-auto) { max-height: calc(100dvh - 1rem); overflow: hidden; border-radius: .75rem; }
  .modal-body { padding: .875rem; overflow-y: auto; }
  .modal-header, .modal-footer { padding: .75rem .875rem; }
  .modal-header > div { min-width: 0; }
  .modal-header .modal-title, .modal-header .small { overflow-wrap: anywhere; }
  .modal-footer { flex-wrap: wrap; }
  .modal-footer > .btn { flex: 1 1 130px; }
  #manualLocationMap { height: min(44dvh, 320px) !important; min-height: 220px !important; }
  #recordsListHeader .row { font-size: .75rem; }
  #listPagination { flex-wrap: wrap; }
  #listPagination > * { min-width: 0; }
  .card-header .d-flex, .card-header.d-flex { min-width: 0; }
  .card-header .btn-group { flex-wrap: wrap; }
}

@media (max-width: 479.98px) {
  main.container, main.container-fluid { padding-left: .75rem !important; padding-right: .75rem !important; }
  .card-body { padding: .9rem; }
  .btn { white-space: normal; }
  .input-group.geosms-search-group { display: grid; grid-template-columns: 1fr; gap: .5rem; }
  .input-group.geosms-search-group > .form-control,
  .input-group.geosms-search-group > .btn { width: 100%; border-radius: var(--bs-border-radius) !important; }
  .modal-dialog.modal-fullscreen-sm-down .modal-content { border-radius: 0; max-height: 100dvh; }
  .geosms-install-copy { font-size: .875rem; }
}

@media (max-width: 575.98px) {
  #problemsEditor .input-group { display: grid; grid-template-columns: auto 48px minmax(0,1fr); gap: .35rem; align-items: center; }
  #problemsEditor .input-group > .input-group-text,
  #problemsEditor .input-group > .form-control,
  #problemsEditor .input-group > .btn { border-radius: var(--bs-border-radius-sm) !important; width: 100%; }
  #problemsEditor .remove-problem { grid-column: 1 / -1; }
  #participantsEditor, #dispatchParticipants, #responsibleDevicesList { overflow-wrap: anywhere; }
  #participantsEditor .btn-check + .btn { white-space: normal; }
  .geosms-map-panel { width: calc(100vw - 1rem) !important; max-height: calc(100dvh - 1rem) !important; }
  .geosms-map-panel .card-header { align-items: flex-start !important; }
  .geosms-map-panel .card-header img { max-width: 108px; height: auto; }
  .geosms-map-panel .btn-group { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; }
  .geosms-map-panel .btn-group > .btn { border-radius: var(--bs-border-radius-sm) !important; }
}

/* Safe areas para iPhone/iPad instalados como PWA */
@supports (padding: max(0px)) {
  body { padding-bottom: env(safe-area-inset-bottom); }
  .navbar { padding-top: max(var(--bs-navbar-padding-y), env(safe-area-inset-top)); }
  .modal-fullscreen-sm-down .modal-header { padding-top: max(.75rem, env(safe-area-inset-top)); }
  .modal-fullscreen-sm-down .modal-footer { padding-bottom: max(.75rem, env(safe-area-inset-bottom)); }
}

/* GeoSMS V36.6 - modales administrativos largos + ID de reporte */
.geosms-report-id {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
  font-size: .72rem;
}

#manualSmsModal .modal-content,
#problemsModal .modal-content,
#participantsModal .modal-content,
#usersModal .modal-content,
#responsibleDevicesModal .modal-content {
  display: flex;
  flex-direction: column;
  max-height: calc(100dvh - 2rem);
  overflow: hidden;
}

#manualSmsModal .modal-body,
#problemsModal .modal-body,
#participantsModal .modal-body,
#usersModal .modal-body,
#responsibleDevicesModal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto !important;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

#manualSmsModal .geosms-modal-form {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
}

#manualSmsModal .geosms-modal-form > .modal-body {
  flex: 1 1 auto;
  min-height: 0;
}

#participantsEditor,
#problemsEditor,
#usersList,
#responsibleDevicesList {
  min-height: 0;
}

@media (max-width: 991.98px) {
  .geosms-long-modal-dialog.modal-fullscreen-lg-down .modal-content {
    height: 100dvh;
    max-height: 100dvh;
  }
}

@media (max-width: 575.98px) {
  #manualSmsModal .modal-content,
  #problemsModal .modal-content,
  #participantsModal .modal-content,
  #responsibleDevicesModal .modal-content {
    height: 100dvh;
    max-height: 100dvh;
  }
  #recordsListHeader .row,
  #recordsList .accordion-button .row { font-size: .68rem; }
  .geosms-report-id { font-size: .64rem; padding-left: .35rem; padding-right: .35rem; }
}
