button {
	appearance: none;
	border: unset;
	background: unset;
	color: unset;
	text-decoration: unset;
	font-family: unset;
	font-size: unset;
	line-height: unset;
	outline: unset;
	box-shadow: unset;
	display: inline-block;
	cursor: pointer;
	user-select: none;
	text-align: unset;
	-webkit-tap-highlight-color: transparent;
}

.flexbox-buttons {
	display: flex;
	gap: 8px;
	justify-content: flex-end;
	flex-direction: column-reverse;
}

.button-primary, .button-secondary, .button-tertiary, .button-transparent {
	font-size: 0.9rem;
	text-decoration: none;
	user-select: none;
	display: inline-block;
	border-radius: 32px;
	border: solid 1px transparent;
	padding: 8px 16px;
	text-align: center;
	box-shadow: var(--shadow-low);
	white-space: nowrap;
}

.button-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: solid 1px transparent;
	cursor: pointer;
	box-shadow: var(--shadow-low);
	padding: 0;
	flex-shrink: 0;
}

.button-primary { /* Used for Delete */
	border-color: var(--color-accent-3);
	background: var(--color-accent-1);
	color: var(--color-background-1);
}

.button-secondary { /* Used for Insert, Update */
	background: var(--color-text-1);
	color: var(--color-background-1);
}

.button-tertiary { /* Used for Read-Only, Redirect */
	border-color: var(--color-background-2);
	background: var(--color-background-3);
	color: var(--color-text-2);
}

.button-transparent {
	border-color: var(--color-background-2);
	background: transparent;
	color: var(--color-background-1);
	border-width: 2px;
}

button:disabled, button:disabled:active {
	border-color: transparent;
	background: var(--color-background-2);
	color: var(--color-background-1);
}

.button-primary img,
.button-secondary img,
.button-transparent img {
	filter: invert(1);
}

.button-primary img, .button-secondary img, .button-tertiary img, .button-transparent img {
	margin-left: 8px;
	height: 16px;
	width: 16px;
}

.button-icon img {
	margin-left: unset;
}

.button-primary:active {
	background: var(--color-accent-3);
}

.button-secondary:active {
	background-color: var(--color-text-2);
}

.button-tertiary:active {
	background-color: var(--color-background-2);
}

.button-transparent:active {
	background-color: var(--color-text-2);
}

/* Pagination Buttons */
.button-pagination-container {
	display: flex;
	align-items: center;
	gap: 16px;
}

.button-pagination {
	user-select: none;
	width: 32px;
	height: 32px;
	flex: 0 0 32px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.button-pagination img {
	width: 18px;
	height: 18px;
}

.button-pagination:active {
	opacity: 0.75;
}

.button-pagination-disabled {
	opacity: 0.25 !important;
	cursor: default;
	pointer-events: none;
}

.button-pagination-disabled:active {
	opacity: 0.5;
}

.button-pagination-page-number {
	flex: 1 1 100%;
	font-size: 0.8rem;
	font-weight: bold;
	text-transform: uppercase;
	text-align: center;
	color: var(--color-text-2);
}

/* Navigation Buttons */
.navigation-button {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.95rem;
	text-align: center;
	height: 100%;
	padding: 16px 8px;
	color: var(--color-background-1);
	white-space: nowrap;
	text-decoration: none;
}

.navigation-button:active {
	color: var(--color-accent-1);
}

.navigation-button-active {
	font-weight: bold;
	position: relative;
}

.navigation-button-active::after {
	content: '';
	position: absolute;
	bottom: 7px;
	width: 100%;
	height: 1px;
	background: var(--color-accent-1);
}

@media screen and (min-width: 819px) {
	.flexbox-buttons {
		flex-direction: row;
	}
}