/* Adaptación visual compartida. No altera colores, contratos ni impresión.
   Se carga con media="screen" y las reglas también se limitan a pantalla. */
@media screen and (max-width: 991.98px) {
  body { min-width: 0; }
  body > .row { margin-left: 0; margin-right: 0; }
  main, .content-wrapper, .container, .container-fluid, .row > *,
  .main-container, .card, .card-body, .input-wrapper, .select-wrapper,
  .range-container, .year-range-container, .inscription-range-container { min-width: 0; }
  .container { max-width: 100%; }
  .main-container { padding: 1rem; margin: 1rem 0; }
  .page-title { font-size: 1.8rem; overflow-wrap: anywhere; }
  .seccion_titulo h3, h1, h2, h3, h4, .alert, .detail-item, footer p { overflow-wrap: anywhere; }
  h1.d-flex, h3.d-flex { flex-wrap: wrap; gap: .75rem; font-size: 1.75rem; }
  .distrito-actions { flex-wrap: wrap; }
  .form-control, .form-select { min-height: 44px; font-size: 16px; max-width: 100%; }
  .boton, .btn, .page-link, .navbar-toggler { min-height: 44px; white-space: normal; }
  .boton, .btn { max-width: 100%; }
  .field-group { gap: .375rem; padding: .75rem; flex-wrap: wrap; }
  .field-group .input-wrapper, .field-group .select-wrapper { flex: 1 1 100px; min-width: 0; }
  .field-group .form-control, .field-group .form-select { width: 100%; min-width: 0; }
  .field-group > .form-control, .field-group > .form-select { flex: 1 1 100px; width: 0; }
  .field-group .btn { flex: 0 0 44px; min-width: 44px; margin-left: 0; padding: .5rem; }
  .year-range-container, .inscription-range-container, .range-container { flex: 1 1 100%; }
  #libroForm .row > *, #editLibroForm .row > * { margin-bottom: .75rem; }
  #editLibroForm > .d-flex, form .d-flex.justify-content-between { flex-wrap: wrap; gap: .75rem; }
  .custom-modal-content { width: calc(100% - 2rem); max-height: calc(100dvh - 2rem); overflow-y: auto; margin: 1rem auto; }
  .modal-dialog { margin: 1rem; }
  .modal-content { max-height: calc(100dvh - 2rem); overflow-y: auto; }
  /* master.css fija navbar-collapse ul a 36px y el dropdown de sesión absoluto.
     En móvil se restablece el flujo vertical; el propio nav pinta todo su fondo. */
  #navbar-container .navbar, #navbar-container #scroll_menu { background-color: var(--color_secundario, #ff8400); }
  #navbar-container .navbar > .container-fluid { flex-wrap: wrap; }
  #navbar-container .area_logo { width: 100%; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
  #navbar-container .area_logo img { max-width: calc(100% - 64px); height: auto; }
  #navbar-container #scroll_menu { flex-basis: 100%; width: 100%; max-height: calc(100vh - var(--alto_navegador, 64px) - 1rem); max-height: calc(100dvh - var(--alto_navegador, 64px) - 1rem); overflow-y: auto; overflow-x: hidden; }
  #navbar-container #scroll_menu.show { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; }
  #navbar-container #scroll_menu > .navbar-nav, #navbar-container #scroll_menu > .area_sesion { flex-shrink: 0; }
  #navbar-container #scroll_menu.collapsing { overflow: hidden; }
  #navbar-container .navbar-collapse ul { height: auto; width: 100%; margin: 0; padding: 0; }
  #navbar-container .navbar-nav-scroll { max-height: none; overflow: visible; }
  #navbar-container .nav-item { width: 100%; margin: 0; }
  #navbar-container .nav-link, #navbar-container .dropdown-item { min-height: 44px; display: flex; align-items: center; width: 100%; padding: .75rem; white-space: normal; color: var(--color_negro, #212529); font-weight: 600; }
  #navbar-container .nav-link:hover, #navbar-container .nav-link:focus-visible,
  #navbar-container .dropdown-item:hover, #navbar-container .dropdown-item:focus-visible { color: var(--color_negro, #212529); background-color: rgba(255, 255, 255, .2); }
  #navbar-container .area_sesion { display: block; width: 100%; margin: .5rem 0 0; padding-top: .5rem; border-top: 1px solid rgba(0, 0, 0, .2); }
  #navbar-container .area_sesion .dropdown { width: 100%; }
  #navbar-container #avatar_sesion { display: none; }
  #navbar-container .area_sesion .dropdown-menu { display: block; position: static; transform: none !important; float: none; min-width: 0; max-width: none; width: 100%; margin: 0; padding: 0; border: 0; background-color: transparent; box-shadow: none; }
  .mobile-table-scroll, .table-responsive { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .mobile-table-scroll table { min-width: 680px; }
  .mobile-table-scroll td, .mobile-table-scroll th { overflow-wrap: normal; }
  #booksTable a.btn[title] { display: inline-flex; align-items: center; justify-content: center; width: 44px; padding: .5rem; }
  #booksTable td:last-child { white-space: nowrap; }
  .mobile-table-scroll .dt-container > .row { margin-left: 0; margin-right: 0; }
  .dt-container .dt-layout-table { overflow-x: auto; }
  .dt-container .dt-layout-table > * { padding-left: 0; padding-right: 0; }
  .dt-container .dt-paging { display: flex; flex-wrap: wrap; gap: .25rem; justify-content: center; }
  .dt-container .dt-info, .dt-container .dt-length { white-space: normal; }
  .list-group-item.d-flex { flex-wrap: wrap; gap: .5rem; overflow-wrap: anywhere; }
  /* Vistas de etiquetas: solo scroll de la vista, sin escalar ni modificar SVG. */
  #book-details { min-width: 0; max-width: 100%; overflow-x: auto; }
  #book-details > .row { margin-left: 0; margin-right: 0; }
  #barcode-only-section { max-width: none; }
  .body_login .area_login { width: 100%; max-width: 100%; margin: 0 auto; }
  .body_login .caja_login { width: 100%; max-width: 450px; padding: 1.25rem; margin: 0 auto; }
  .body_login .logo_login { width: 100% !important; max-width: 380px; }
  .body_login .logo_login object { max-width: 100%; }
  .body_login .fondo_area_login { min-height: 0; }
  .distrito-container { padding: 1.5rem; margin: 1rem; }
}
@media screen and (max-width: 575.98px) {
  .container { padding-left: 12px; padding-right: 12px; }
  .year-range-container, .inscription-range-container, .range-container { flex-direction: column; align-items: stretch; }
  .year-range-container > span, .inscription-range-container > span, .range-container > span { display: none; }
  .field-group .range-container .form-control { width: 100%; }
  h1.d-flex > .boton, h3.d-flex > .boton, form > .text-center > .boton,
  #editLibroForm > .d-flex > *, form .d-flex.justify-content-between > * { width: 100%; margin-left: 0; }
  .input-group { flex-wrap: wrap; }
  .input-group > .boton { flex: 1 0 100%; margin: .5rem 0 0; }
  #searchForm .col-4 { width: 100%; }
  .book-details-card .card-header { font-size: 1.3rem; padding: 1rem; }
  .book-details-card .card-body { padding: 1rem; }
}

/* Solo móvil: la misma ancla btnVerLibro se mueve con matchMedia. */
@media screen and (max-width: 767.98px) {
  .edit-top-actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; }
  .edit-top-actions > .boton { flex: 1 1 8rem; min-width: 0; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: .75rem .5rem; margin: 0; font-size: .875rem; line-height: 1.25; white-space: normal; text-align: center; }
}
