.form { display: grid; gap: var(--space-6); } .option { display: grid; gap: var(--space-2); } .hint { color: var(--color-text-secondary); font-size: var(--font-size-small); } /* Empty until there is something to say, and then it takes no space of its own. */ .live:empty { display: none; } /* A refusal is a state of the form, not an alarm over it (§3.8): the phrase in the ordinary text colour, the advice in the quiet one. */ .refused { display: grid; gap: var(--space-2); border-top: 1px solid var(--color-border); padding-top: var(--space-5); } .phrase { color: var(--color-text); } /* The actions live INSIDE the form and not in the window's footer: the footer belongs to the modal, and what stands there has to exist before the bounds have been read — while this pair only makes sense once there is a scale to submit. */ .actions { display: flex; gap: var(--space-4); justify-content: flex-end; }