/* Prestax P16 · Domicilio completo de proveedores y documentos recibidos */
#expensesModal .exp-form-grid__full {
  grid-column: 1 / -1 !important;
  min-width: 0 !important;
}

#expensesModal .exp-supplier-address-card {
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0.78rem !important;
  border: 1px solid rgba(56, 189, 248, 0.38) !important;
  border-radius: 16px !important;
  background:
    radial-gradient(circle at 100% 0, rgba(56, 189, 248, 0.13), transparent 38%),
    linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(30, 41, 59, 0.9)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

#expensesModal .exp-supplier-address-card > legend {
  max-width: calc(100% - 1rem) !important;
  padding: 0 0.48rem !important;
  color: #f8fafc !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

#expensesModal .exp-supplier-address-card > legend span,
#expensesModal .exp-supplier-address-card > legend small {
  display: block !important;
}

#expensesModal .exp-supplier-address-card > legend small {
  margin-top: 0.14rem !important;
  color: #bae6fd !important;
  font-size: 0.7rem !important;
  font-weight: 750 !important;
}

#expensesModal .exp-supplier-address-grid {
  display: grid !important;
  grid-template-columns: minmax(230px, 2fr) minmax(115px, 0.72fr) repeat(3, minmax(145px, 1fr)) !important;
  gap: 0.64rem !important;
  align-items: start !important;
}

#expensesModal .exp-supplier-address-grid > .input-group {
  min-width: 0 !important;
  margin: 0 !important;
}

#expensesModal .exp-supplier-address-grid label {
  color: #e2e8f0 !important;
  font-size: 0.78rem !important;
  font-weight: 850 !important;
}

#expensesModal .exp-supplier-address-grid label span[aria-hidden="true"] {
  color: #fda4af !important;
}

#expensesModal .exp-supplier-address-grid input {
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 40px !important;
  border: 1px solid rgba(56, 189, 248, 0.34) !important;
  border-radius: 12px !important;
  background: rgba(248, 250, 252, 0.98) !important;
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  color-scheme: light !important;
  font-size: 0.9rem !important;
  padding: 0.46rem 0.56rem !important;
}

#expensesModal .exp-supplier-address-grid input[data-prestax-address-state="resolved"] {
  border-color: #34d399 !important;
  box-shadow: 0 0 0 2px rgba(52, 211, 153, 0.15) !important;
}

#expensesModal .exp-supplier-address-grid input[data-prestax-address-state="mismatch"],
#expensesModal .exp-supplier-address-grid input[data-prestax-address-state="ambiguous"] {
  border-color: #fb923c !important;
  box-shadow: 0 0 0 2px rgba(251, 146, 60, 0.16) !important;
}

#expensesModal .exp-supplier-address-help {
  margin: 0.62rem 0 0 !important;
  color: #cbd5e1 !important;
  font-size: 0.74rem !important;
  line-height: 1.35 !important;
}

#expensesModal .exp-supplier-address-card--admin {
  grid-column: 1 / -1 !important;
}

#expensesModal .exp-supplier-address-card--admin .exp-supplier-address-grid {
  grid-template-columns: minmax(210px, 1.7fr) minmax(105px, 0.7fr) repeat(3, minmax(130px, 1fr)) !important;
}

#expensesModal .exp-supplier-address-summary {
  margin-top: 0.18rem !important;
  color: #475569 !important;
  font-size: 0.72rem !important;
  line-height: 1.3 !important;
}

/*
 * VIS1 · El viewport visual puede ser fraccional aunque innerWidth se
 * redondee a 1320. El límite 1320px dejaba un hueco real (1320.5128px
 * observado en Chromium/DPR≈3) y mantenía el grid ancho de cinco columnas.
 * 1320.98px sigue sin invadir el siguiente pixel lógico y cierra ese hueco.
 */
@media (max-width: 1320.98px) {
  #expensesModal .exp-supplier-address-grid,
  #expensesModal .exp-supplier-address-card--admin .exp-supplier-address-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #expensesModal .exp-supplier-address-grid .exp-address-field--street {
    grid-column: 1 / -1 !important;
  }
}

/*
 * VIS1 · En escritorio intermedio la etiqueta fiscal puede ser más ancha
 * que su tarjeta. Debe partir línea; nunca empujar el checkbox ni la columna.
 * Esta hoja se carga después de 97-desktop.css, por lo que actúa como
 * corrección tardía y localizada del módulo Gastos.
 */
@media (min-width: 980px) and (max-width: 1420.98px) {
  #expensesModal .exp-checkline .exp-check,
  #expensesModal .exp-checkline .exp-check > span {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #expensesModal .exp-checkline .exp-check > span {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }
}

@media (max-width: 760px) {
  #expensesModal .exp-supplier-address-card {
    padding: 0.68rem !important;
    border-radius: 14px !important;
  }

  #expensesModal .exp-supplier-address-grid,
  #expensesModal .exp-supplier-address-card--admin .exp-supplier-address-grid {
    grid-template-columns: 1fr !important;
    gap: 0.56rem !important;
  }

  #expensesModal .exp-supplier-address-grid .exp-address-field--street {
    grid-column: auto !important;
  }

  #expensesModal .exp-supplier-address-grid input {
    min-height: 44px !important;
    font-size: 0.94rem !important;
  }
}

/* P16.3 · Proveedores móvil: acciones en flujo normal y final completamente visible */
@media (max-width: 979.98px) {
  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]:not([hidden]) {
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    padding: 0 0 calc(1rem + env(safe-area-inset-bottom)) !important;
    overflow: visible !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    :is(.exp-admin, .exp-admin-grid, .exp-admin-list, .exp-admin-form) {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    .exp-admin {
    padding-bottom: 0.22rem !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    .exp-admin-grid {
    align-items: start !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    .exp-admin-form {
    padding-bottom: 0.2rem !important;
    contain: none !important;
  }

  #expensesModal > .modal > .modal-body.exp-modal-body {
    scroll-padding-bottom: calc(2.75rem + env(safe-area-inset-bottom)) !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    .exp-admin-actions {
    position: relative !important;
    inset: auto !important;
    z-index: auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0.82rem 0 calc(2.5rem + env(safe-area-inset-bottom)) !important;
    padding: 0.62rem !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    scroll-margin-bottom: calc(2.5rem + env(safe-area-inset-bottom)) !important;
    border: 1px solid rgba(125, 211, 252, 0.28) !important;
    border-radius: 15px !important;
    background:
      linear-gradient(
        180deg,
        rgba(15, 23, 42, 0.96),
        rgba(7, 14, 25, 0.99) 46%
      ) !important;
    box-shadow:
      0 10px 24px rgba(2, 6, 23, 0.28),
      inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    .exp-admin-actions > button {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    height: auto !important;
    padding: 0.72rem 0.82rem !important;
    overflow: visible !important;
    white-space: normal !important;
    text-overflow: clip !important;
    line-height: 1.22 !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    #expSupplierSaveBtn {
    border-color: rgba(74, 222, 128, 0.55) !important;
    background: linear-gradient(
      180deg,
      rgba(22, 163, 74, 0.98),
      rgba(21, 128, 61, 0.98)
    ) !important;
    color: #f0fdf4 !important;
    font-weight: 900 !important;
    box-shadow: 0 8px 20px rgba(22, 163, 74, 0.24) !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    #expSupplierDeleteBtn {
    border-color: rgba(248, 113, 113, 0.48) !important;
    background: rgba(127, 29, 29, 0.86) !important;
    color: #fff1f2 !important;
    font-weight: 850 !important;
  }
}

/* ==========================================================================
   VIS1 · Gastos · fila de justificantes en escritorio
   --------------------------------------------------------------------------
   Cuando #expReceiptsMonthFilter está hidden, el grid histórico de 97-desktop
   (auto 160px auto auto) colocaba "Compartir justificantes" dentro del track
   fijo de 160px. Su contenido real necesita más ancho y desbordaba internamente.
   La corrección mantiene el resumen flexible y deja que ambas acciones midan
   su contenido real; no reduce tipografía ni targets.
   ========================================================================== */
@media (min-width: 980px) and (hover: hover) and (pointer: fine) {
  #expensesModal
    .exp-receipts-month:has(#expReceiptsMonthFilter[hidden]) {
    grid-template-columns:
      minmax(0, 1fr)
      max-content
      max-content !important;
    justify-content: stretch !important;
  }

  #expensesModal
    .exp-receipts-month:has(#expReceiptsMonthFilter[hidden])
    #expReceiptsMonthSummary {
    min-width: 0 !important;
  }

  #expensesModal
    .exp-receipts-month:has(#expReceiptsMonthFilter[hidden])
    :is(#expShareReceiptsMonthBtn, #expDownloadReceiptsMonthBtn).btn-soft {
    width: max-content !important;
    max-width: 100% !important;
    min-width: max-content !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }
}

/* VIS1 · Justificantes · desktop estrecho validado a 1075 px.
 * El resumen ocupa la primera fila completa y las dos acciones comparten
 * la segunda. `width:auto` + border-box evita sumar el padding de `.muted`
 * fuera del track (el probe con width:100% generaba 11 px de overflow). */
@media
  (min-width: 980px)
  and (max-width: 1095.98px)
  and (hover: hover)
  and (pointer: fine) {
  #expensesModal
    .exp-receipts-month:has(#expReceiptsMonthFilter[hidden]) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: center !important;
  }

  #expensesModal
    .exp-receipts-month:has(#expReceiptsMonthFilter[hidden])
    #expReceiptsMonthSummary {
    grid-column: 1 / -1 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    justify-self: stretch !important;
    white-space: normal !important;
  }

  #expensesModal
    .exp-receipts-month:has(#expReceiptsMonthFilter[hidden])
    #expShareReceiptsMonthBtn {
    grid-column: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #expensesModal
    .exp-receipts-month:has(#expReceiptsMonthFilter[hidden])
    #expDownloadReceiptsMonthBtn {
    grid-column: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}
/* ==========================================================================
   VIS1 · Proveedores · escritorio
   --------------------------------------------------------------------------
   El formulario de proveedor heredaba un scroll anidado cuya caja no quedaba
   realmente desplazable en determinados altos de viewport. Cuando la pestaña
   Proveedores está activa, el cuerpo del modal pasa a ser el único propietario
   del scroll vertical y las cajas internas vuelven al flujo normal.
   ========================================================================== */
@media (min-width: 980px) and (hover: hover) and (pointer: fine) {
  #expensesModal:has(
      .exp-tab[data-exp-tab-panel="suppliers"]:not([hidden])
    )
    > .modal
    > .modal-body.exp-modal-body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    scroll-padding-bottom: 1.25rem !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]:not([hidden]) {
    flex: 0 0 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: 1rem !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]:not([hidden])
    :is(.exp-admin, .exp-admin-grid, .exp-admin-form) {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]:not([hidden])
    :is(.exp-admin, .exp-admin-grid) {
    overflow: visible !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]:not([hidden])
    .exp-admin-grid {
    align-items: start !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]:not([hidden])
    .exp-admin-form {
    overflow: visible !important;
    contain: none !important;
    padding-bottom: 1rem !important;
  }

  /*
   * La ficha administrativa vive dentro de una columna del workspace, no en
   * todo el ancho del modal. Dos tracks fluidos impiden que País quede
   * recortado a 1440 px y mantienen inputs legibles sin reducir tipografía.
   */
  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    .exp-supplier-address-card--admin
    .exp-supplier-address-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="suppliers"]
    .exp-supplier-address-card--admin
    .exp-address-field--street {
    grid-column: 1 / -1 !important;
  }
}

/* ==========================================================================
   VIS1 · Documentos recibidos · estabilidad desktop > 1320 px
   --------------------------------------------------------------------------
   La ficha vive en la columna izquierda del workspace de Gastos. Su ancho
   útil no crece al mismo ritmo que el viewport completo; por eso volver a
   cinco columnas al superar 1320 px hacía desbordar País. La misma transición
   de breakpoint retiraba el wrap protector de "Recargo de equivalencia".
   Se elimina esa dependencia del viewport: dentro de Documentos recibidos,
   la dirección conserva dos columnas fluidas y las etiquetas fiscales pueden
   partir línea en todo escritorio.
   ========================================================================== */
@media (min-width: 980px) and (hover: hover) and (pointer: fine) {
  #expensesModal
    .exp-tab[data-exp-tab-panel="expenses"]:not([hidden])
    .exp-supplier-address-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="expenses"]:not([hidden])
    .exp-supplier-address-grid
    .exp-address-field--street {
    grid-column: 1 / -1 !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="expenses"]:not([hidden])
    .exp-checkline {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="expenses"]:not([hidden])
    .exp-checkline
    .exp-check {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="expenses"]:not([hidden])
    .exp-checkline
    .exp-check
    > span {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  #expensesModal
    .exp-tab[data-exp-tab-panel="expenses"]:not([hidden])
    #expRecargoRateWrap,
  #expensesModal
    .exp-tab[data-exp-tab-panel="expenses"]:not([hidden])
    #expRecargoRate {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}
