button,
.btn,
input,
select,
textarea{
  font-family: var(--form-font-family);
  font-weight: var(--form-font-weight);
}

/* =========================
   INPUTS & SELECTS
========================= */

.form-control,
.form-select{
  font-size: var(--fs-md);
  height: var(--h-md);
  padding: .375rem var(--px-md);
  line-height: 1.4;
  border-radius: 12px !important;
  border-color: #d2d2d7;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.form-control:focus,
.form-select:focus{
  border-color: #0066cc;
  box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);
}

.form-control-sm,
.form-select-sm{
  font-size: var(--fs-sm);
  height: var(--h-sm);
  padding: .25rem var(--px-sm);
}

.form-control-lg,
.form-select-lg{
  font-size: var(--fs-lg);
  height: var(--h-lg);
  padding: .5rem var(--px-lg);
}

.form-control-xs,
.form-select-xs{
  font-size: var(--fs-xs);
  height: var(--h-xs);
  padding: .15rem var(--px-xs);
}

textarea.form-control{
  height: auto;
  min-height: 100px;
}

/* =========================
   BUTTONS
========================= */

.btn{
  text-decoration: none !important;
  border-radius: 980px !important;
  border-width: 1px !important;
  font-weight: 500;
  letter-spacing: -0.01em;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.1s ease;
}
.btn:active{
  transform: scale(0.98);
}

.btn-sm{
  font-size: var(--fs-sm);
  height: var(--h-sm);
  /* padding: 0 var(--px-sm); */
}

.btn-lg{
  font-size: var(--fs-lg);
  height: var(--h-lg);
  /* padding: 0 var(--px-lg); */
}

.btn-xs{
  font-size: var(--fs-xs);
  height: var(--h-xs);
  /* padding: 0 var(--px-xs); */
}

.btn-xxs{
  font-size: var(--fs-xxs);

}

/* Botones tamaño (legacy) */
.btn-xxs{font-size:9px !important;font-weight:500 !important; padding:3px !important}
.btn-xs{font-size:11px !important;font-weight:500 !important; padding:5px 11px !important}
.btn-sm{font-size:11.5px !important;font-weight:500 !important; padding:6px 13px !important}
.btn-md{font-size:12px !important;font-weight:500 !important; padding:8px 16px !important}

.btn-normalize-xs .btn{font-size:.65em !important}
.btn-normalize .btn{font-size:.9em !important}

a.btn-secondary{color:#fff !important}
a.btn-light{color:#222 !important}

/* Dropdowns */
.dropdown-sm ul li a{font-size:13px !important;font-weight:400 !important}
.dropdown-menu{background-color:#fff !important;margin:0 !important;border-radius:12px !important;border-color:#d2d2d7 !important;box-shadow:0 4px 16px rgba(0,0,0,.08) !important}

/* =========================
   ICONS INSIDE CONTROLS
========================= */

.btn i,
.btn svg,
.form-control i{
  font-size: 1em;
  line-height: 1;
  vertical-align: middle;
}

/* Buttons with icon only */
.btn-icon{
  width: var(--h-md);
  padding: 0 !important;
}

.btn-icon.btn-sm{width: var(--h-sm)}
.btn-icon.btn-lg{width: var(--h-lg)}
.btn-icon.btn-xs{width: var(--h-xs)}
.btn-icon.btn-xxs{width: var(--h-xs)}

/* =========================
   INPUT GROUP HEIGHTS
========================= */

.input-group > .form-control,
.input-group > .form-select,
.input-group > .btn{
  height: var(--h-md);
}

.input-group-sm > .form-control,
.input-group-sm > .form-select,
.input-group-sm > .btn{
  height: var(--h-sm);
}

.input-group-lg > .form-control,
.input-group-lg > .form-select,
.input-group-lg > .btn{
  height: var(--h-lg);
}

/* =========================
   BRANDY BUTTON COLORS (SOFT)
   (Unificado: antes tenías versión sólida y luego “soft”; ganaba la última)
========================= */

.btn-success,
.btn-danger,
.btn-info{
  font-weight: 800;
  padding: .55rem 1.15rem;
}

.btn-success{
  background: rgba(52,199,89,.12);
  border-color: rgba(52,199,89,.35) !important;
  color: #248a3d;
}

.btn-danger{
  background: rgba(255,59,48,.10);
  border-color: rgba(255,59,48,.30) !important;
  color: #ff3b30;
}

.btn-info{
  background: rgba(0,122,255,.10);
  border-color: rgba(0,122,255,.30) !important;
  color: #007aff;
}

.btn-success:hover,
.btn-danger:hover,
.btn-info:hover,
.btn-success:focus,
.btn-danger:focus,
.btn-info:focus{
  filter: brightness(.98);
}

.btn-success:disabled,
.btn-danger:disabled,
.btn-info:disabled,
.btn-success.disabled,
.btn-danger.disabled,
.btn-info.disabled{
  opacity: .65;
}

/* =========================
   OUTLINES
========================= */

.btn-outline-danger{
  border: #dc3546ad solid 1px !important;
  color: #dc3545 !important;
}

.btn-outline-secondary:hover{
  background: rgba(108,117,125,.12) !important;
  color: #000 !important;
}

.btn-outline-danger:hover{
  background: rgba(255,0,0,.05) !important;
  color: #dc3545 !important;
}