.spruce-forms {
	max-width: 40rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.spruce-forms__field,
.spruce-forms__group {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.spruce-forms__group {
	border: 1px solid #d0d5dd;
	border-radius: 6px;
	padding: 1rem;
	margin: 0;
}

.spruce-forms__row,
.spruce-forms__slots {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	gap: 1rem;
	width: 100%;
	align-items: start;
}

.spruce-forms__slots > * {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	gap: 1rem;
	min-width: 0;
	align-items: start;
}

.spruce-forms__column {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-width: 0;
	min-height: 2rem;
	padding: 0.75rem;
}

.spruce-forms__column--edit {
	border: 1px dashed #d0d5dd;
	border-radius: 6px;
}

.spruce-forms__label,
.spruce-forms__part,
.spruce-forms legend {
	font-weight: 600;
}

.spruce-forms__part {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-weight: 500;
}

.spruce-forms__parts {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.spruce-forms__entry input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.spruce-forms__entry select,
.spruce-forms__entry textarea,
.spruce-forms__signature input[type="text"] {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.spruce-forms__inline {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.spruce-forms__inline select {
	width: auto;
	min-width: 8rem;
}

.spruce-forms__inline input {
	flex: 1 1 12rem;
}

.spruce-forms__check {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 500;
}

.spruce-forms__check input {
	width: auto;
}

.spruce-forms__req {
	color: #9b1c1c;
	margin-left: 0.15rem;
}

.spruce-forms__error {
	color: #9b1c1c;
	margin: 0;
}

.spruce-forms__field.is-invalid input,
.spruce-forms__field.is-invalid select {
	border-color: #9b1c1c;
}

.spruce-forms__success,
.spruce-forms__notice,
.spruce-forms__empty,
.spruce-forms__static {
	margin: 0;
}

.spruce-forms__button,
.spruce-forms__clear {
	border: 0;
	border-radius: 4px;
	padding: 0.55rem 1rem;
	background: #1f2933;
	color: #fff;
	cursor: pointer;
}

.spruce-forms__clear {
	align-self: flex-start;
	background: #4b5563;
}

.spruce-forms__pad {
	width: 100%;
	height: 160px;
	border: 1px solid #c5c9d1;
	border-radius: 4px;
	background: #fff;
	touch-action: none;
	cursor: crosshair;
}

.spruce-forms__figure {
	margin: 0;
}

.spruce-forms__figure img {
	display: block;
	max-width: 100%;
	height: auto;
}

.spruce-forms__prose :first-child {
	margin-top: 0;
}

.spruce-forms__prose :last-child {
	margin-bottom: 0;
}

.spruce-forms-entry__field {
	margin-bottom: 1rem;
}

.spruce-forms-entry__group {
	border: 1px solid #d0d5dd;
	padding: 0.75rem;
	margin-bottom: 1rem;
}
