body {
  font-family: sans-serif;
  background: #f0f0f0;
  text-align: center;
  padding: 20px;
}
h1 {
  margin-bottom: 30px;
}
.dial-container {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.gauge {
  position: relative;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 4px solid #ccc;
  margin: 10px;
  background: radial-gradient(circle, #fff 60%, #eee 100%);
}
.needle {
  position: absolute;
  width: 2px;
  height: 50px;
  background: red;
  top: 20px;
  left: 59px;
  transform-origin: bottom center;
  transition: transform 0.5s ease;
}
.label {
  position: absolute;
  top: 10px;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 24px;
}
.value {
  position: absolute;
  bottom: 10px;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 16px;
}
.wind-rose {
  position: relative;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  border: 4px solid #7f8c8d;
  margin: 20px auto;
  background: #f9f9f9;
}
.arrow {
  position: absolute;
  width: 4px;
  height: 60px;
  background: #333;
  top: 40px;
  left: 78px;
  transform-origin: bottom center;
  transition: transform 0.5s ease;
}
.wind-speed {
  position: absolute;
  bottom: 20px;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 18px;
}
.uv { border: 4px solid #f1c40f;
}
.solar { border: 4px solid #e67e22;
}
.rainrate { border: 4px solid #2980b9;
}
.rainaccum { border: 4px solid #3498db;
}