* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Poppins', sans-serif;
  font-size: 20px;
}

body {
  min-height: 100vh;
  background: linear-gradient(135deg, #1f1c2c, #928dab);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2rem;
}

#calc-grid {
  background-color: #ffffff;
  display: grid;
  grid-template-columns: repeat(4, 100px);
  grid-template-rows: minmax(120px, auto) repeat(5, 100px);
  gap: 12px;
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}

.output {
  grid-column: span 4;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  background-color: #f5f5f5;
  color: #111827;
  font-size: 2.4em;
  padding: 20px;
  border-radius: 15px;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.1);
}

button {
  background-color: #4f46e5;
  color: #fff;
  font-size: 1.5em;
  font-weight: 600;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

button:hover {
  background-color: #4338ca;
  transform: translateY(-2px);
}

button:active {
  background-color: #3730a3;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.2);
}

button[data-operation] {
  background-color: #ec4899;
}

button[data-operation]:hover {
  background-color: #db2777;
}

button[data-equals] {
  grid-column: span 2;
  background-color: #10b981;
}

button[data-equals]:hover {
  background-color: #059669;
}

button[data-all-clear] {
  grid-column: span 2;
  background-color: #f59e0b;
}

button[data-all-clear]:hover {
  background-color: #d97706;
}
