
.uploadButton,
form input[type="submit"],
form button,
button,
.button {
	// Normal buttons
	color: @btnColorDefaultText;
	background-color: @btnColorDefault;
	font-weight: 400;
	text-transform: uppercase;
	padding: .5rem 1rem;
	cursor: pointer;
	outline: none;
	border: none;
	display: inline-block;
	margin-bottom: .5rem;
	border-radius: @radius;
	text-decoration: none;
	.user-select();
	.transition();

	&.full-width {
		width: 100%;
	}

	&:hover {
		text-decoration: none;
		background-color: lighten(@btnColorDefault, @btnHoverLighten);
		.z-depth2();
	}

	&.disabled,
	&:disabled {
		.z-depth0();
		cursor: default;
		opacity: @btnDisabled;
	}

	&.primary {
		color: @colorPrimaryText;
		background-color: @colorPrimary;
		&:hover {
			background-color: lighten(@colorPrimary, @btnHoverLighten);
		}
		&.disabled,
		&:disabled {
			background-color: @colorPrimary;
		}
	}

	&.accent {
		color: @colorAccentText;
		background-color: @colorAccent;
		&:hover {
			background-color: lighten(@colorAccent, @btnHoverLighten);
		}
		&.disabled,
		&:disabled {
			background-color: @colorAccent;
		}
	}

	&.danger {
		color: @btnColorDangerText;
		background-color: @btnColorDanger;
		&:hover {
			background-color: lighten(@btnColorDanger, @btnHoverLighten);
		}
		&.disabled,
		&:disabled {
			background-color: @btnColorDanger;
		}
	}

	// Flat buttons
	&.flat {
		color: @btnColorDefaultText;
		background-color: transparent;

		&:hover {
			background-color: @btnColorFlatBg;
			.z-depth0();
		}
		&.disabled,
		&:disabled {
			background-color: transparent;
		}

		&.primary {
			color: @colorPrimary;
		}

		&.accent {
			color: @colorAccent;
		}

		&.danger {
			color: @btnColorDanger;
		}
	}

	// Raised buttons
	&.raised {
		.z-depth1();
		&:hover {
			.z-depth2();
		}
		&.disabled,
		&:disabled {
			.z-depth0();
		}
	}

	// Floating
	&.floating {
		display: inline-block;
		border-radius: 50%;
		width: 3.5rem;
		height: 3.5rem;
		font-size: 1.6rem;
		line-height: 3.5rem;
		text-align: center;
		padding: 0;
		.z-depth2();

		i {
			line-height: 3.5rem;
		}

		&.mini {
			font-size: 1rem;
			width: 2.5rem;
			height: 2.5rem;
			line-height: 2.5rem;

			i {
				line-height: 2.5rem;
			}
		}
	}
}

.uploadButton {
	position: relative;
	overflow: hidden;
	display: inline-block;

	input[type="file"] {
		position: absolute;
		top: 0;
		right: 0;
		margin: 0;
		padding: 0;
		font-size: 40px;
		cursor: pointer;
		opacity: 0;
	}
}