form { background: #fff; border: 1px solid #d9dee5; border-radius: 6px; padding: 1.5rem; }
form label { display: block; font-weight: 600; margin-bottom: 1rem; }
form input, form select {
  display: block; width: 100%; margin-top: .3rem; padding: .6rem .7rem;
  font: inherit; border: 1px solid #b7c0cb; border-radius: 4px; background: #fff;
}
form input:focus-visible, form select:focus-visible { outline: 3px solid #f0b429; outline-offset: 1px; }
fieldset { border: 0; padding: 0; margin: 0 0 1rem; }
legend { font-weight: 600; margin-bottom: .4rem; }
label.inline { display: inline-block; font-weight: 400; margin-right: 1.25rem; }
label.inline input { display: inline; width: auto; margin: 0 .3rem 0 0; }
.hint { color: #5b6673; font-size: .9rem; margin: -.5rem 0 1rem; }
.errors { background: #fdf0ef; border: 1px solid #d9534f; border-radius: 6px; padding: .75rem 1.25rem; margin-bottom: 1.25rem; }
.errors p { margin: 0 0 .25rem; font-weight: 600; }
.errors ul { margin: 0; padding-left: 1.2rem; }
.summary { background: #fff; border: 1px solid #d9dee5; border-radius: 6px; padding: 1rem 1.5rem; display: grid; grid-template-columns: 10rem 1fr; gap: .5rem 1rem; }
.summary dt { color: #5b6673; }
.summary dd { margin: 0; font-weight: 600; }
table { width: 100%; border-collapse: collapse; font-size: .95rem; }
th, td { text-align: left; padding: .5rem .4rem; border-bottom: 1px solid #d9dee5; }
@media (max-width: 30rem) { .summary { grid-template-columns: 1fr; } }
