:root {
  --font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  --bg-color: #f0f4f8;
  --container-bg: #ffffff;
  --text-color: #2c3e50;
  --placeholder-color: #bdc3c7;
  --primary-color: #3498db;
  --btn-hover: #2980b9;
  --ball-yellow: #f1c40f;
  --ball-blue: #3498db;
  --ball-red: #e74c3c;
  --ball-gray: #95a5a6;
  --ball-green: #2ecc71;
  --transition-speed: 0.3s;
}

body.dark-mode {
  --bg-color: #121212;
  --container-bg: #1e1e1e;
  --text-color: #e0e0e0;
  --placeholder-color: #757575;
  --primary-color: #2980b9;
  --btn-hover: #3498db;
}

body {
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: var(--bg-color);
  color: var(--text-color);
  font-family: var(--font-family);
  transition: background-color var(--transition-speed), color var(--transition-speed);
}

.container {
  position: relative;
  text-align: center;
  background-color: var(--container-bg);
  padding: 2.5rem;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  max-width: 500px;
  width: 90%;
  transition: background-color var(--transition-speed), box-shadow var(--transition-speed);
}

h1 {
  margin-top: 0;
  color: var(--text-color);
  font-weight: 700;
}

#theme-toggle {
  position: absolute;
  top: 15px;
  right: 15px;
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  padding: 5px;
  border-radius: 50%;
  transition: transform 0.2s ease;
}

#theme-toggle:hover {
  transform: scale(1.15);
}

#ball-container {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 15px;
  margin: 2rem 0;
  min-height: 80px;
}

.placeholder {
  color: var(--placeholder-color);
  font-size: 1.1rem;
  font-style: italic;
  width: 100%;
}

.ball {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  font-size: 1.4rem;
  color: #fff;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2), inset 0 -4px 8px rgba(0, 0, 0, 0.1);
  animation: pop-in 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
  opacity: 0;
  transform: scale(0.5);
}

@keyframes pop-in {
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.ball-yellow { background: radial-gradient(circle at 30% 30%, #f7dc6f, #f1c40f); }
.ball-blue { background: radial-gradient(circle at 30% 30%, #5dade2, #3498db); }
.ball-red { background: radial-gradient(circle at 30% 30%, #f1948a, #e74c3c); }
.ball-gray { background: radial-gradient(circle at 30% 30%, #bdc3c7, #95a5a6); }
.ball-green { background: radial-gradient(circle at 30% 30%, #58d68d, #2ecc71); }

#generate-btn {
  background-color: var(--primary-color);
  color: white;
  border: none;
  padding: 1rem 2rem;
  font-size: 1.2rem;
  font-weight: bold;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 10px rgba(52, 152, 219, 0.3);
}

#generate-btn:hover {
  background-color: var(--btn-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(52, 152, 219, 0.4);
}

#generate-btn:active {
  transform: translateY(0);
}
