/* Ventanas de configuracion de Nova (opciones, datos del usuario, cambio de contrasena): mismo estilo que Nuevo Documento, notas y selector de empresa.
   PC: ventana centrada. Movil (< 576 px): pantalla completa; el JS (enlazarModalMovil) fija --avb-vh/--avb-top a la zona visible para que el teclado no tape nada. */
.avb-modal .modal-dialog { max-width: 560px; }
.avb-modal.avb-modal--ancho .modal-dialog { max-width: 700px; }
.avb-modal .modal-content { border: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 24px 48px -16px rgba(31, 45, 74, 0.55); background-color: #fff; }

.avb-modal .avb-mh {
  display: flex; align-items: center; gap: 14px; padding: 18px 22px; color: #fff; flex: 0 0 auto;
  background: radial-gradient(120% 140% at 0% 0%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 60%), linear-gradient(135deg, #344767 0%, #1f2d4a 100%);
}
.avb-modal .avb-mh__icon { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 13px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #ffffff 0%, #e6ecf5 100%); color: #344767; font-size: 20px; }
.avb-modal .avb-mh__txt { min-width: 0; }
.avb-modal .avb-mh__title { font-size: 17px; font-weight: 800; line-height: 1.2; margin: 0; color: #fff; }
.avb-modal .avb-mh__close { margin-left: auto; width: 34px; height: 34px; flex: 0 0 34px; border: 0; border-radius: 50%; color: #fff; font-size: 14px; background: rgba(255,255,255,0.12); }
.avb-modal .avb-mh__close:hover { background: rgba(255,255,255,0.24); }

.avb-modal .modal-body { padding: 20px 22px 8px; background: #fff; }
.avb-modal .form-group { margin-bottom: 16px; }
.avb-modal .form-group label, .avb-modal .avb-etq { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 600; color: #1f2a44; }
.avb-modal .form-control, .avb-modal select.form-control { height: 44px; padding: 0 14px; font-size: 15px; color: #1f2a44; border: 1px solid #d2d6da; border-radius: 12px; }
.avb-modal .form-control:focus { border-color: #344767; box-shadow: 0 0 0 3px rgba(52, 71, 103, 0.15); }
.avb-modal .form-control:disabled, .avb-modal .form-control[readonly] { background-color: #f4f6fa; color: #344767; opacity: 1; }
.avb-modal .form-control.is-invalid { border-color: #ea0606; box-shadow: 0 0 0 3px rgba(234, 6, 6, 0.10); }
.avb-modal #msj_resp { margin: 0 0 8px; font-size: 13px; line-height: 1.45; }

.avb-modal .modal-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 22px 18px; border-top: 0; background: #fff; flex: 0 0 auto; }
.avb-modal .modal-footer .btn { margin: 0; min-width: 130px; }
.avb-modal .modal-footer .col { flex: 0 0 auto; width: auto; }

@media (max-width: 575.98px) {
  .avb-modal .modal-dialog { margin: var(--avb-top, 0px) 0 0; max-width: none; min-height: 0; height: var(--avb-vh, 100vh); height: var(--avb-vh, 100dvh); align-items: stretch; }
  .avb-modal .modal-content { height: 100%; border-radius: 0; box-shadow: none; display: flex; flex-direction: column; }
  .avb-modal .avb-mh { padding: 12px 14px; }
  .avb-modal .avb-mh__icon { width: 40px; height: 40px; flex-basis: 40px; font-size: 17px; }
  .avb-modal .modal-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px 14px 6px; -webkit-overflow-scrolling: touch; }
  .avb-modal .form-control, .avb-modal select.form-control { font-size: 16px; }   /* 16 px: el iPhone no hace zoom al tocar un campo */
  .avb-modal .modal-footer { padding: 10px 14px 14px; padding-bottom: max(14px, env(safe-area-inset-bottom)); border-top: 1px solid #e9ecef; }
  .avb-modal .modal-footer .btn, .avb-modal .modal-footer .col { flex: 1 1 0; min-width: 0; }
}

/* Dialogos SweetAlert del portal (clase avb-swal): disponibles en todas las pantallas, no solo con el modal de subida abierto */
.swal2-popup.avb-swal { width: 30em; max-width: 94vw; padding: 28px 24px 22px; border-radius: 16px; font-family: "Open Sans", -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
.avb-swal .swal2-title { padding: 0; font-size: 20px; font-weight: 700; line-height: 1.3; color: #1f2a44; }
.avb-swal .swal2-html-container { margin: 10px 0 0; padding: 0; font-size: 14px; line-height: 1.55; color: #67748e; }
.avb-swal .swal2-html-container b { color: #1f2a44; word-break: break-word; }
.avb-swal .swal2-icon.avb-swal-icono:not(.swal2-error):not(.swal2-success):not(.swal2-warning) { width: 64px; height: 64px; margin: 0 auto 14px; border: 0; background: #eef1f6; color: #344767; }
.avb-swal .swal2-icon.avb-swal-icono:not(.swal2-error):not(.swal2-success):not(.swal2-warning) .swal2-icon-content { font-size: 28px; }
.avb-swal .swal2-actions { flex-direction: column; align-items: stretch; gap: 10px; width: 100%; margin: 22px 0 0; padding: 0; }
.avb-swal .swal2-actions button { width: 100%; margin: 0; padding: 0 16px; min-height: 44px; border-radius: 8px; font-size: 14px; font-weight: 700; cursor: pointer; }
.avb-swal .avb-swal-btn-ok { border: 0; color: #fff; background: linear-gradient(180deg, #3d5075, #344767); box-shadow: 0 4px 10px rgba(52, 71, 103, .25); }
.avb-swal .avb-swal-btn-deny { color: #344767; background: #fff; border: 1px solid #344767; }
.avb-swal .avb-swal-btn-cancel { color: #8392ab; background: transparent; border: 0; font-weight: 600; }
