:root{
  --btn-fs-xxs: .60rem;
  --btn-fs-xs: .69rem;
  --btn-fs-sm: .74rem;
  --btn-fs-md: .79rem;
  --btn-fs-lg: .86rem;
  --btn-fs-xl: .92rem;

  --btn-h-xxs: 24px;
  --btn-h-xs: 30px;
  --btn-h-sm: 34px;
  --btn-h-md: 38px;
  --btn-h-lg: 42px;
  --btn-h-xl: 46px;

  --btn-px-xxs: .40rem;
  --btn-px-xs: .62rem;
  --btn-px-sm: .82rem;
  --btn-px-md: 1.00rem;
  --btn-px-lg: 1.15rem;
  --btn-px-xl: 1.30rem;
}

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: .45rem 1rem;
  line-height: 1.4;
  border-radius: .6rem !important;
}

.form-control-sm,
.form-select-sm{
  font-size: var(--fs-sm);
  height: var(--h-sm);
  padding: .3rem .85rem;
}

.form-control-lg,
.form-select-lg{
  font-size: var(--fs-lg);
  height: var(--h-lg);
  padding: .55rem 1.1rem;
}

.form-control-xs,
.form-select-xs{
  font-size: var(--fs-xs);
  height: var(--h-xs);
  padding: .2rem .7rem;
}

select.form-control,
select.form-select{
  padding-right: 2.75rem;
}

textarea.form-control{
  height: auto;
  min-height: 100px;
}

/* =========================
   BUTTONS
========================= */

.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: var(--btn-h-md);
  padding: .48rem var(--btn-px-md);
  font-size: var(--btn-fs-md);
  line-height: 1.2;
  font-weight: 600;
  text-decoration: none !important;
  border-radius: 9px !important;
  border-width: .6px !important;
}

.btn-xxs,
.btn-xs,
.btn-sm,
.btn-md,
.btn-lg,
.btn-xl{
  line-height: 1.2 !important;
  font-weight: 600 !important;
}

.btn-xxs{
  font-size: var(--btn-fs-xxs) !important;
  min-height: var(--btn-h-xxs);
  padding: .22rem var(--btn-px-xxs) !important;
}

.btn-xs{
  font-size: var(--btn-fs-xs) !important;
  min-height: var(--btn-h-xs);
  padding: .30rem var(--btn-px-xs) !important;
}

.btn-sm{
  font-size: var(--btn-fs-sm) !important;
  min-height: var(--btn-h-sm);
  padding: .38rem var(--btn-px-sm) !important;
}

.btn-md{
  font-size: var(--btn-fs-md) !important;
  min-height: var(--btn-h-md);
  padding: .46rem var(--btn-px-md) !important;
}

.btn-lg{
  font-size: var(--btn-fs-lg) !important;
  min-height: var(--btn-h-lg);
  padding: .54rem var(--btn-px-lg) !important;
}

.btn-xl{
  font-size: var(--btn-fs-xl) !important;
  min-height: var(--btn-h-xl);
  padding: .62rem var(--btn-px-xl) !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}

/* =========================
   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(--btn-h-md);
  padding: 0 !important;
}

.btn-icon.btn-sm{width: var(--btn-h-sm)}
.btn-icon.btn-lg{width: var(--btn-h-lg)}
.btn-icon.btn-xs{width: var(--btn-h-xs)}
.btn-icon.btn-xl{width: var(--btn-h-xl)}
.btn-icon.btn-xxs{width: var(--btn-h-xxs)}

/* =========================
   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: 700;
}

.btn-success{
  background: rgba(25,135,84,.12);
  border-color: rgba(25,135,84,.35) !important;
  color: #198754;
}

.btn-danger{
  background: rgba(220,53,69,.12);
  border-color: rgba(220,53,69,.35) !important;
  color: #dc3545;
}

.btn-info{
  background: rgba(13,202,240,.12);
  border-color: rgba(13,202,240,.35) !important;
  color: #0dcaf0;
}

.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;
}
