.nld-name-box {
	margin: 0 0 1.25em;
	width: 100%;
	flex: 0 0 100%;
}
.nld-name-field {
	margin: 0 0 .9em;
}
.nld-name-field label {
	display: block;
	margin-bottom: .35em;
	font-weight: 700;
	color: var(--contrast, #1B2A49);
}
.nld-name-input {
	display: block;
	width: 100%;
	max-width: 24em;
	box-sizing: border-box;
	padding: .65em .8em;
	font-size: 16px; /* 16px stops iPhone zooming into the field */
	border: 2px solid var(--contrast, #1B2A49);
	border-radius: 8px;
	background: #fff;
	color: var(--contrast, #1B2A49);
}
.nld-name-input:focus {
	outline: 3px solid var(--accent, #0078BF);
	outline-offset: 1px;
}
.nld-name-input[aria-invalid="true"] {
	border-color: #B3261E;
}
.nld-counter {
	display: block;
	margin-top: .25em;
	font-size: .85em;
	color: var(--contrast-2, #4A5672);
}
.nld-counter--full {
	color: #B3261E;
	font-weight: 700;
}
.nld-error {
	display: block;
	min-height: 1.2em;
	margin-top: .2em;
	font-size: .9em;
	color: #B3261E;
}
.nld-note {
	margin: 0;
	font-size: .85em;
	color: var(--contrast-2, #4A5672);
}

/* spelling pop-up */
html.nld-modal-open { overflow: hidden; }
.nld-modal[hidden] { display: none; }
.nld-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.nld-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(27, 42, 73, .65);
}
.nld-modal__dialog {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 30em;
	max-height: 100%;
	overflow: auto;
	padding: 1.5em;
	border-radius: 12px;
	background: #fff;
	color: var(--contrast, #1B2A49);
	box-shadow: 0 10px 40px rgba(0, 0, 0, .3);
}
.nld-modal__dialog:focus { outline: none; }
.nld-modal__dialog h2 {
	margin: 0 0 .6em;
	font-size: 1.4em;
}
.nld-modal__name {
	margin: 0 0 .25em;
	padding: .4em .6em;
	border-radius: 8px;
	background: var(--base-2, #FFF8EC);
	font-size: 1.9em;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	overflow-wrap: anywhere;
}
.nld-modal__retype label {
	display: block;
	margin: .8em 0 0;
	font-weight: 700;
}
.nld-modal__retype input {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin-top: .3em;
	padding: .6em .8em;
	font-size: 16px;
	border: 2px solid var(--contrast, #1B2A49);
	border-radius: 8px;
}
.nld-modal__check {
	display: flex;
	gap: .6em;
	align-items: flex-start;
	margin: 1em 0 .4em;
	font-weight: 600;
	cursor: pointer;
}
.nld-modal__check input {
	flex: 0 0 auto;
	width: 1.4em;
	height: 1.4em;
	margin-top: .1em;
}
.nld-modal__error {
	min-height: 1.3em;
	margin: 0 0 .6em;
	color: #B3261E;
	font-weight: 600;
}
.nld-modal__actions {
	display: flex;
	gap: .75em;
	flex-wrap: wrap;
}
.nld-btn {
	flex: 1 1 8em;
	padding: .8em 1.2em;
	border-radius: 8px;
	font-size: 1em;
	font-weight: 700;
	cursor: pointer;
	border: 2px solid var(--contrast, #1B2A49);
}
.nld-btn--edit {
	background: #fff;
	color: var(--contrast, #1B2A49);
}
.nld-btn--confirm {
	background: var(--sunshine, #F3FE58);
	border-color: var(--contrast, #1B2A49);
	color: var(--contrast, #1B2A49);
}
.nld-btn:focus-visible {
	outline: 3px solid var(--accent, #0078BF);
	outline-offset: 2px;
}

/* photo labels: second line and photo upload */
.nld-photo-box {
	margin: 0 0 1.25em;
	width: 100%;
	flex: 0 0 100%;
}
.nld-photo-field input[type="file"] {
	display: block;
	width: 100%;
	max-width: 24em;
	box-sizing: border-box;
	padding: .55em .6em;
	font-size: 16px;
	border: 2px dashed var(--contrast, #1B2A49);
	border-radius: 8px;
	background: #fff;
	color: var(--contrast, #1B2A49);
}
.nld-photo-field input[type="file"][aria-invalid="true"] {
	border-color: #B3261E;
}
.nld-photo-consent {
	margin: .75em 0 0;
	font-size: .9em;
}
.nld-photo-consent label {
	display: flex;
	gap: .5em;
	align-items: flex-start;
}
.nld-photo-consent input {
	margin-top: .25em;
}
