html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  min-height: 100%;
}

body {
  margin-bottom: 0;
}

/* Filtros de listado: ancho fijo de combos (no cambia al seleccionar) */
form[data-auto-submit-filtros] {
  --filtro-fecha-ancho: 10.75rem;
  --filtro-control-altura: calc(1.5em + 0.75rem + 2px);
  --filtro-label-mb: 0.5rem;
}

/* Etiquetas uniformes en la fila de filtros */
form[data-auto-submit-filtros] .form-label {
  margin-bottom: var(--filtro-label-mb);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
}

/* Altura uniforme de inputs, combos, botones de grupo y acciones */
form[data-auto-submit-filtros] .form-control,
form[data-auto-submit-filtros] .form-select,
form[data-auto-submit-filtros] .input-group > .form-control,
form[data-auto-submit-filtros] .input-group > .form-select,
form[data-auto-submit-filtros] .input-group > .btn,
form[data-auto-submit-filtros] .input-group > .input-group-text,
form[data-auto-submit-filtros] .dropdown > .btn,
form[data-auto-submit-filtros] .col-auto > .btn.btn-light,
form[data-auto-submit-filtros] [class*="col-"] > .btn.btn-light,
form[data-auto-submit-filtros] .d-flex > .btn.btn-light {
  min-height: var(--filtro-control-altura);
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  font-size: 1rem;
  line-height: 1.5;
}

form[data-auto-submit-filtros] .filtros-label-spacer {
  visibility: hidden;
  user-select: none;
}

form[data-auto-submit-filtros] .filtros-check-control {
  min-height: var(--filtro-control-altura);
  display: flex;
  align-items: center;
  margin-bottom: 0;
}

form[data-auto-submit-filtros] select.form-select {
  width: 11rem;
  max-width: 100%;
}

/* Proveedor, negocio, tipo actividad: nombres más largos */
form[data-auto-submit-filtros] select.form-select.filtro-select-ancho,
form[data-auto-submit-filtros] select.form-select#proveedorId,
form[data-auto-submit-filtros] select.form-select#negocioId,
form[data-auto-submit-filtros] select.form-select#filtroTipo {
  width: 16rem;
}

/* La columna del grid no debe reservar col-md-* si el combo es chico */
form[data-auto-submit-filtros] [class*="col-"]:has(select.form-select) {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

/* Fechas: ancho fijo acorde al valor + icono calendario */
form[data-auto-submit-filtros] input[type="date"],
form[data-auto-submit-filtros] input[type="datetime-local"] {
  width: var(--filtro-fecha-ancho);
  max-width: 100%;
}

form[data-auto-submit-filtros] .filtros-col-fecha {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

/* Acciones en grillas: btn-group btn-group-sm + icono CoreUI/Bootstrap */
.table .btn-group-sm > .btn,
.table .btn-group-sm > form .btn {
  min-width: 2.125rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-left: 0.45rem;
  padding-right: 0.45rem;
}

.table .btn-group-sm > .btn i,
.table .btn-group-sm > form .btn i {
  line-height: 1;
}

/* Asignación dual (disponibles / asignados) */
.asignacion-dual-panel {
  overflow: hidden;
}

.asignacion-dual-panel--disponibles {
  border-top: 3px solid var(--bs-primary) !important;
}

.asignacion-dual-panel--asignados {
  border-top: 3px solid var(--bs-success) !important;
}

.asignacion-dual-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  border-bottom: 1px solid var(--bs-border-color);
}

.asignacion-dual-list-wrap {
  background-color: var(--bs-tertiary-bg);
  min-height: 10rem;
}

.asignacion-dual-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-height: 50vh;
  overflow-y: auto;
}

.asignacion-dual-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 6rem;
  padding: 1rem;
  text-align: center;
  background-color: var(--bs-body-bg);
  border: 1px dashed var(--bs-border-color);
  border-radius: 0.375rem;
}

.asignacion-dual-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  background-color: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.375rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.asignacion-dual-item-label {
  flex: 1 1 auto;
  min-width: 0;
  word-break: break-word;
  font-size: 0.9375rem;
}

.asignacion-dual-btn {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* Kardex: columna fecha compacta */
.kardex-col-fecha {
  width: 1%;
  white-space: nowrap;
}