/* NumberInput Atom */
.number-input-wrapper {
  display: inline-flex;
  align-items: center;
  border: var(--border-width-1) solid var(--border-default);
  border-radius: var(--border-radius-md);
  background-color: var(--bg-surface);
  transition: all var(--duration-200) var(--easing-out);
}

.number-input-wrapper:focus-within {
  border-color: var(--border-focus);
  box-shadow: var(--focus-ring-shadow);
}

.number-input {
  flex: 1;
  padding: var(--space-2) var(--space-1);
  font-family: var(--font-family-sans);
  font-size: var(--text-sm);
  color: var(--text-primary);
  background: none;
  border: none;
  text-align: center;
  outline: none;
  min-width: var(--space-15);
}

.number-input::-webkit-inner-spin-button,
.number-input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  display: none;
}

.number-input {
  -moz-appearance: textfield;
}

.number-btn {
  padding: var(--space-1);
  color: var(--text-muted);
  background: none;
  border: none;
  cursor: pointer;
  transition: all var(--duration-150) var(--easing-out);
  border-radius: var(--border-radius-sm);
}

.number-btn:hover {
  color: var(--text-secondary);
  background-color: var(--bg-surface-hover);
}

.number-input-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.number-input-disabled .number-btn {
  pointer-events: none;
}

.number-input-sm .number-input { padding: var(--space-1_5) var(--space-1); font-size: var(--text-xs); }
.number-input-lg .number-input { padding: var(--space-2_5) var(--space-1); font-size: var(--text-base); }
