{#- The card pin control's dialog (ADR-0014): ONE body-level form shared by every card-head control, opened by pin.js — the maintenance popover's machinery (Floating UI anchor, Escape / outside click, swap-safe) carrying a small form instead of a list. It lives outside #status-grid so the ~10s poll never swaps an open form out from under the admin — and pin.js re-anchors it to the replacement control after each swap, without touching the fields, because living outside the grid is only half of that promise. pin.js fills the path and picks the promise sentence for the clicked card (subtree vs leaf). `next` returns the admin to the page the dialog was opened on (validated server-side by _safe_next); the view query string rides along, so filters survive the round trip. On an **already-pinned** card the dialog opens in read mode: safe rendered Markdown, who last set it and until when, with explicit Edit and Clear actions. Edit reveals the raw prefilled source; extending a window is still an in-place set, never a clear and a re-set (ADR-0014 / ADR-0018 amendments). Duration or expiry stays unfilled: blank is the configured default everywhere. Both forms carry a `set_at` token that pin.js copies off the card's control — the write names the pin it believes it is replacing, and a mismatch is refused whole and answered by the conflict page. -#} {% from '_maintenance_fields.html' import maintenance_fields with context %}