/*
 * Kiln forms, served at /_kiln/forms.css on pages with a form. Every rule
 * is inside :where(), so it has no specificity: any theme rule wins.
 * Colours come from the text colour (currentColor), so forms read well on
 * light and dark themes alike.
 */
:where(.kiln-form) {
  max-width: 40rem;
}
:where(.kiln-form__form) {
  display: grid;
  gap: 1.25rem;
}
:where(.kiln-form__field) {
  display: grid;
  gap: 0.375rem;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
:where(.kiln-form__label) {
  font-weight: 600;
  padding: 0;
}
:where(.kiln-form__required) {
  font-weight: 400;
  font-size: 0.9em;
}
:where(.kiln-form__help) {
  margin: 0;
  font-size: 0.9em;
}
:where(.kiln-form__error) {
  margin: 0;
  font-weight: 600;
  padding-inline-start: 0.625rem;
  border-inline-start: 4px solid #d92d20;
}
:where(.kiln-form__input) {
  box-sizing: border-box;
  width: 100%;
  font: inherit;
  color: inherit;
  background-color: transparent;
  padding: 0.625rem 0.75rem;
  border: 1px solid color-mix(in srgb, currentColor 60%, transparent);
  border-radius: 0.375rem;
}
:where(textarea.kiln-form__input) {
  resize: vertical;
}
:where(
  .kiln-form__input[aria-invalid="true"],
  .kiln-form__check[aria-invalid="true"]
) {
  outline: 2px solid #d92d20;
  outline-offset: 1px;
}
:where(.kiln-form__options) {
  display: grid;
  gap: 0.5rem;
}
:where(.kiln-form__option) {
  display: flex;
  gap: 0.625rem;
  align-items: flex-start;
}
:where(.kiln-form__check) {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.15em 0 0;
  flex: none;
}
:where(.kiln-form__submit) {
  font: inherit;
  cursor: pointer;
  padding: 0.625rem 1.5rem;
}
:where(.kiln-form__submit[aria-disabled="true"]) {
  cursor: progress;
  opacity: 0.7;
}
:where(.kiln-form__sent) {
  padding: 1rem 1.25rem;
  border: 2px solid currentColor;
  border-radius: 0.5rem;
}
:where(.kiln-form__sent > p) {
  margin: 0;
}
/* Without JavaScript, sending comes back to the page at #<form>-sent. */
:where(.kiln-form__sent:target) {
  display: block;
}
:where(.kiln-form__sent:target ~ .kiln-form__form) {
  display: none;
}
/* Last, so hidden parts (errors, the form once sent) stay hidden. */
:where(.kiln-form [hidden]:not(.kiln-form__sent)) {
  display: none;
}
