
  /* Label, control and error snap to rows SHARED with the other fields on the same line (subgrid), so
     inputs line up even when one question wraps to two lines or one field shows an error. */
  .field.svelte-h9p93q {
    display: grid;
    grid-row: span 3;
    grid-template-rows: subgrid;
    /* No gap between the three rows: an empty error row (no error) must take 0px, or every section
       ends with dead space under its last row. The spacing lives inside the label and the error. */
    row-gap: 0;
  }
  .lbl.svelte-h9p93q { grid-row: 1; padding-bottom: 4px; }
  .ctl.svelte-h9p93q { grid-row: 2; }
  .err.svelte-h9p93q { grid-row: 3; padding-top: 4px; }
  .has-error.svelte-h9p93q :is(input:not([type='radio']), select, textarea, .drop) {
    border-color: var(--color-amber-400, #fbbf24);
  }
  label.svelte-h9p93q {
    transition: color 160ms var(--ease-snappy);
  }
  .has-error.svelte-h9p93q label:where(.svelte-h9p93q) {
    color: var(--color-amber-700, #b45309);
  }
  .dark .has-error.svelte-h9p93q label:where(.svelte-h9p93q) {
    color: var(--color-amber-400, #fbbf24);
  }
