.sd-form { max-width: 720px; }
.sd-form fieldset { border: 1px solid #d0d5dd; border-radius: 8px; padding: 1rem 1.25rem; margin: 0 0 1.25rem; }
.sd-form legend { font-weight: 600; padding: 0 .5rem; }
.sd-field { margin: 0 0 1rem; }
.sd-more { border: 1px solid #d0d5dd; border-radius: 8px; padding: .75rem 1.25rem; margin: 0 0 1.25rem; }
.sd-more summary { cursor: pointer; font-weight: 600; margin-bottom: .75rem; }
.sd-form label, .sd-label { display: block; font-weight: 500; margin-bottom: .25rem; }
.sd-form input[type=text], .sd-form input[type=url], .sd-form input[type=email],
.sd-form input[type=datetime-local], .sd-form select, .sd-form textarea { width: 100%; box-sizing: border-box; padding: .5rem .6rem; }
.sd-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .25rem .75rem; }
.sd-checks label, .sd-field > label:has(input[type=checkbox]) { font-weight: 400; }
.sd-has-err input, .sd-has-err select, .sd-has-err textarea { border-color: #b32d2e; }
.sd-error { display: block; color: #b32d2e; font-size: .875rem; margin-top: .25rem; }
.sd-notice { padding: .75rem 1rem; border-radius: 6px; margin-bottom: 1rem; }
.sd-ok { background: #edfaef; border: 1px solid #68b87a; }
.sd-err { background: #fcf0f1; border: 1px solid #b32d2e; }
/* Honeypot: off-screen rather than display:none, which some bots detect. */
.sd-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
