.sf-contribute {
	max-width: 855px;
	margin: 0 auto;
	padding: 24px 28px 72px;
}
.sf-contribute, .sf-contribute * { box-sizing: border-box; }
.sf-contribute h1 { margin: 0 0 16px; font-size: 40px; }
.sf-contribute-intro { max-width: 900px; }
.sf-contribute-scope { max-width: 900px; margin-top: 14px; color: #4b5563; }
#sf-contribute-form { margin-top: 20px; }
.sf-contribute-help { color: #596575; font-size: 15px; line-height: 1.6; }
.sf-contribute-contact { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; margin: 18px 0 32px; }
.sf-contribute-field > label { display: block; margin-bottom: 3px; color: #254f79; font-weight: bold; }
.sf-contribute-field input, .sf-contribute-field textarea {
	width: 100%; min-height: 42px; padding: 7px 13px; border: 1px solid #aab7c5;
	border-radius: 8px; background: #fff; color: #182635; font: inherit; line-height: 1.5;
}
.sf-contribute-field textarea { height: 170px; resize: vertical; }
.sf-contribute-field input:focus, .sf-contribute-field textarea:focus {
	outline: none; box-shadow: none; border-color: #7598c1;
}
.sf-contribute button:focus-visible {
	outline: 3px solid #318be8; outline-offset: 3px;
}
.sf-contribute-topics { min-width: 0; margin: 0; padding: 0; border: 0; }
.sf-contribute-topics legend { margin-bottom: 3px; padding: 0; color: #254f79; font: inherit; font-weight: bold; }
.sf-contribute-topic-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin-top: 12px; }
.sf-contribute-topic {
	display: flex; align-items: flex-start; gap: 11px; padding: 7px 12px;
	border: 1px solid #d0dae5; border-radius: 6px; background: #fff;
	font-size: 16px; line-height: 1.5; cursor: pointer;
}
.sf-contribute-topic:hover { background: #f6f9fd; border-color: #7598c1; }
.sf-contribute-topic:has(input:checked) { background: #edf5ff; border-color: #7598c1; }
.sf-contribute-topic:has(input:focus-visible) { outline: 3px solid #318be8; outline-offset: 2px; }
.sf-contribute-topic input { flex: 0 0 auto; width: 18px; height: 18px; margin: 3px 0 0; accent-color: #2f588c; }
.sf-contribute-description { margin: 30px 0 18px; }
.sf-contribute-description .sf-contribute-help { margin: 0 0 10px; }
.sf-contribute-captcha { margin: 20px 0 8px; }
.sf-contribute-submit {
	margin-top: 14px; padding: 13px 26px; border: 0; border-radius: 5px;
	background: #2f588c; color: #fff; font: inherit; font-weight: bold; cursor: pointer;
}
.sf-contribute-submit:hover { background: #254a78; }
.sf-contribute-submit:disabled { opacity: .6; cursor: not-allowed; }
.sf-contribute-loading {
	position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center;
	justify-content: center; background: rgba(255, 255, 255, .6); cursor: wait;
}
.sf-contribute-loading[hidden] { display: none; }
.sf-contribute-spinner {
	width: 64px; height: 64px; border: 8px solid #ccc; border-top-color: #2f588c;
	border-radius: 50%; animation: sf-contribute-spin 1s linear infinite;
}
@keyframes sf-contribute-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sf-contribute-spinner { animation-duration: 2s; } }
.sf-contribute-result { margin-top: 18px; padding: 16px; border-left: 4px solid #2f588c; background: #edf5ff; }
.sf-contribute-result[hidden] { display: none; }
.sf-contribute-result[data-error="true"] { border-color: #b42318; background: #fff4f2; color: #8a1c13; }
@media (max-width: 640px) {
	.sf-contribute { padding: 20px 18px 44px; }
	.sf-contribute h1 { font-size: 32px; }
	.sf-contribute-contact, .sf-contribute-topic-grid { grid-template-columns: minmax(0, 1fr); }
	.sf-contribute-contact { gap: 18px; }
	.sf-contribute-submit { width: 100%; }
}
