/* Forms. Labels above, always visible. Every field is required unless its label says "(optional)".
   No state by colour alone: a field in error has an ink border, a hatched unit and a sentence. */
.dp-form{max-width:var(--me-text)}
.dp-fg{margin-top:1.5rem}
.dp-fg:first-of-type{margin-top:0}
.dp-fg-l{display:block;margin-bottom:.375rem;font-size:var(--fs-small);font-weight:600;font-stretch:90%;line-height:1.3;color:var(--fg)}
.dp-fg-l span{font-weight:400;font-stretch:100%;color:var(--fg-2)}
.dp-fg-h{margin-bottom:.375rem;font-size:var(--fs-note);line-height:1.45;color:var(--fg-2)}
.dp-field{display:block;width:100%;min-height:3rem;padding:.75rem .875rem;border:1px solid var(--line-ctl);border-radius:var(--r-ctl);background:var(--bg-2);color:var(--fg);font-family:var(--sans);font-size:var(--fs-text);line-height:1.3;transition:border-color var(--t1) var(--ease)}
.dp-field.dp-mono{font-family:var(--mono);font-size:1rem}
textarea.dp-field{min-height:7.5rem;line-height:1.45;resize:vertical}
.dp-select{appearance:none;-webkit-appearance:none;padding-right:2.5rem}
.dp-select-wrap{position:relative;display:block}
.dp-select-wrap::after{content:"";position:absolute;right:1rem;top:calc(50% - .3rem);width:.4375rem;height:.4375rem;border-right:1.5px solid var(--fg);border-bottom:1.5px solid var(--fg);transform:rotate(45deg);pointer-events:none}
@media (hover:hover){.dp-field:hover{border-color:var(--fg)}}
.dp-field[aria-invalid="true"]{border-color:var(--fg)}
.dp-fg-m{display:flex;align-items:baseline;gap:.5rem;margin-top:.375rem;font-size:var(--fs-small);line-height:1.45;color:var(--fg)}
.dp-form-sum{display:flex;align-items:baseline;gap:.625rem;margin-bottom:1.25rem;padding:.75rem .875rem;border:1px solid var(--fg);font-size:var(--fs-small);line-height:1.45}
.dp-form-sum ul{margin-top:.25rem}
.dp-form-sum li{margin-top:.125rem}
.dp-form-note{margin-top:1.25rem;font-size:var(--fs-note);line-height:1.5;color:var(--fg-2)}
.dp-form .dp-btn{margin-top:1rem}
.dp-btn[aria-busy="true"]{cursor:progress}
.dp-form-done{display:flex;align-items:baseline;gap:.625rem;margin-top:1rem;padding:.875rem 1rem;border:1px solid var(--fg);font-size:.9375rem;line-height:1.45;overflow-wrap:anywhere}
.dp-form-ctx{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin-bottom:1.5rem;padding-bottom:.625rem;border-bottom:1px solid var(--line);color:var(--fg-3)}
.dp-form-ctx .dp-mono{font-size:1rem;color:var(--fg)}
.dp-hp{position:absolute;left:-200vw;width:1px;height:1px;overflow:hidden}
