:root{
  --kaelos-bg:#fbf7f2;
  --kaelos-panel:rgba(255,255,255,.82);
  --kaelos-border:rgba(15,23,42,.10);
  --kaelos-text:#111827;
  --kaelos-muted:rgba(17,24,39,.62);
  --kaelos-beige:#efe3d6;
  --kaelos-beige-strong:#d9bfa7;
  --kaelos-black:#212121;
  --kaelos-white:#e8e8e8;

  --kaelos-btn-radius:15px;
  --kaelos-btn-py:15px;
  --kaelos-btn-px:25px;
  --kaelos-btn-font:17px;
  --kaelos-btn-shadow:4px 8px 19px -3px rgba(0,0,0,0.18);
}

html,body{background:var(--kaelos-bg);color:var(--kaelos-text);}

/* Botón Uiverse (global, pero respetando variantes existentes) */
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.btn{
  padding:var(--kaelos-btn-py) var(--kaelos-btn-px);
  border:unset;
  border-radius:var(--kaelos-btn-radius);
  color:var(--kaelos-black);
  z-index:1;
  background:var(--kaelos-white);
  position:relative;
  font-weight:1000;
  font-size:var(--kaelos-btn-font);
  -webkit-box-shadow:var(--kaelos-btn-shadow);
  box-shadow:var(--kaelos-btn-shadow);
  transition:all 250ms;
  overflow:hidden;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

button::before,
input[type="button"]::before,
input[type="submit"]::before,
input[type="reset"]::before,
.btn::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  height:100%;
  width:0;
  border-radius:var(--kaelos-btn-radius);
  background-color:var(--kaelos-black);
  z-index:-1;
  -webkit-box-shadow:var(--kaelos-btn-shadow);
  box-shadow:var(--kaelos-btn-shadow);
  transition:all 250ms;
}

button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
.btn:hover{color:var(--kaelos-white);}

button:hover::before,
input[type="button"]:hover::before,
input[type="submit"]:hover::before,
input[type="reset"]:hover::before,
.btn:hover::before{width:100%;}

button:disabled,
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
.btn:disabled,
.btn.disabled{
  opacity:.55;
  cursor:not-allowed;
}

/* No convertir enlaces tipo link en botón */
a.btn-link,
.btn-link{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  display:inline;
  font-weight:600;
  font-size:inherit;
  color:inherit;
}
.btn-link::before{display:none;}

/* Tamaños existentes */
.btn-small,
button.btn-small,
.btn.btn-small{
  --kaelos-btn-py:8px;
  --kaelos-btn-px:12px;
  --kaelos-btn-font:13px;
}

/* Variante beige (para botones que ya eran secundarios) */
.btn-secondary,
button.btn-secondary,
.btn.btn-secondary{
  background:var(--kaelos-beige);
}

/* Badge “próximamente” si existe */
.badge-soon{
  border:1px solid rgba(0,0,0,.85);
  background:rgba(0,0,0,.92);
  color:#fff;
}

@media (prefers-reduced-motion: reduce){
  button, .btn, input[type="button"], input[type="submit"], input[type="reset"]{transition:none;}
  button::before, .btn::before, input[type="button"]::before, input[type="submit"]::before, input[type="reset"]::before{transition:none;}
}
