.opc {
	--opc-accent: #3f6b2c;
	--opc-accent-soft: #e7efdf;
	--opc-bad: #a33;
	--opc-bad-soft: #f6e3e3;
	--opc-rule: #e0e4da;
	--opc-muted: #6b7568;
	margin: 1.5em 0;
	font-size: 16px;
	line-height: 1.5;
	max-width: 480px;
}

.opc * {
	box-sizing: border-box;
}

.opc .opc-form {
	border: 1px solid var(--opc-rule);
	border-radius: 8px;
	padding: 16px;
}

.opc .opc-field {
	margin-bottom: 14px;
}

.opc .opc-field:last-of-type {
	margin-bottom: 0;
}

.opc label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.opc select {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid var(--opc-rule);
	border-radius: 6px;
	font-size: 16px;
}

.opc .opc-submit {
	margin-top: 16px;
	background: var(--opc-accent);
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 10px 18px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
}

.opc .opc-submit:hover {
	opacity: 0.9;
}

.opc .opc-error {
	margin-top: 10px;
	color: var(--opc-bad);
}

.opc .opc-result {
	margin-top: 16px;
	padding: 16px;
	background: var(--opc-accent-soft);
	border-radius: 8px;
}

.opc .opc-result--bad,
.opc .opc-result p.opc-result-verdict--bad {
	color: var(--opc-bad);
}

.opc .opc-result:has(.opc-result-verdict--bad) {
	background: var(--opc-bad-soft);
}

.opc .opc-result p {
	margin: 0 0 8px;
}

.opc .opc-result p:last-child {
	margin-bottom: 0;
}

.opc .opc-result-verdict {
	font-weight: 700;
	font-size: 1.1em;
	color: var(--opc-accent);
}

.opc .opc-result-verdict--bad {
	color: var(--opc-bad);
}

.opc .opc-result-verdict--neutral {
	color: var(--opc-muted);
}

.opc .opc-result-pair {
	font-weight: 600;
}

.opc .opc-result-reason {
	color: var(--opc-muted);
	font-size: 0.95em;
}
