.iptools-password {
	max-width: 60rem;
	display: grid;
	gap: 1.25rem;
}
.iptools-password fieldset,
.iptools-password section {
	margin: 0;
}
.iptools-password fieldset {
	padding: 0.75rem 1rem;
}
.iptools-password legend,
.iptools-password__output-wrap > label {
	font-weight: 600;
}
.iptools-password__output-row {
	display: grid;
	grid-template-columns: minmax(12rem, 1fr) auto auto;
	gap: 0.5rem;
	margin-top: 0.4rem;
}
.iptools-password__output-row input {
	width: 100%;
	min-width: 0;
	font: 1rem/1.4 ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
}
.iptools-password__status {
	min-height: 1.5em;
	margin: 0.35rem 0 0;
}
.iptools-password__modes,
.iptools-password__checks {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
}

.iptools-password__saved-settings {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.iptools-password section {
	display: grid;
	gap: 1rem;
}
.iptools-password section[hidden] {
	display: none;
}
.iptools-password__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(10rem, 1fr));
	gap: 0.75rem;
}
.iptools-password__grid label,
.iptools-password__delimiter label,
.iptools-password__length {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.iptools-password__delimiter {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.iptools-password__length input {
	width: 6rem;
}
.iptools-password__privacy {
	margin: 0;
	font-size: 0.9em;
	opacity: 0.8;
}
@media (max-width: 42rem) {
	.iptools-password__output-row,
	.iptools-password__grid {
		grid-template-columns: 1fr;
	}
	.iptools-password__output-row button {
		width: 100%;
	}
}
