.ofs-form {
	max-width: 520px;
	margin: 0 auto;
}

.ofs-field {
	margin: 0 0 1rem;
	display: flex;
	flex-direction: column;
}

.ofs-field label {
	font-weight: 600;
	margin-bottom: .35rem;
}

.ofs-field input,
.ofs-field textarea {
	padding: .6rem .7rem;
	border: 1px solid #c9c9c9;
	border-radius: 6px;
	font-size: 1rem;
}

.ofs-field input:focus,
.ofs-field textarea:focus {
	outline: none;
	border-color: #2271b1;
	box-shadow: 0 0 0 2px rgba(34, 113, 177, .2);
}

.ofs-req {
	color: #b32d2e;
}

.ofs-hint {
	color: #666;
	margin-top: .3rem;
	font-size: .85rem;
}

.ofs-actions {
	display: flex;
	align-items: center;
	gap: .75rem;
}

.ofs-submit {
	background: #2271b1;
	color: #fff;
	border: 0;
	padding: .7rem 1.4rem;
	border-radius: 6px;
	font-size: 1rem;
	cursor: pointer;
}

.ofs-submit:disabled {
	opacity: .6;
	cursor: not-allowed;
}

.ofs-spinner {
	width: 18px;
	height: 18px;
	border: 2px solid #ccc;
	border-top-color: #2271b1;
	border-radius: 50%;
	animation: ofs-spin .7s linear infinite;
}

@keyframes ofs-spin {
	to { transform: rotate(360deg); }
}

.ofs-messages:empty {
	display: none;
}

.ofs-messages {
	padding: .75rem 1rem;
	border-radius: 6px;
	margin-bottom: 1rem;
}

.ofs-messages.ofs-error {
	background: #fcf0f1;
	border: 1px solid #d63638;
	color: #8a1f23;
}

.ofs-messages.ofs-success {
	background: #edfaef;
	border: 1px solid #1a7f37;
	color: #0f5c28;
}
