text-align: center;
}
+/* Single flex line: keep the action group and the Delete button on one
+ * row so the group can never push Delete onto its own wrapped line. When
+ * space is tight the group (below) wraps its buttons internally instead. */
.modern-card__foot {
display: flex;
- flex-wrap: wrap;
+ flex-wrap: nowrap;
align-items: center;
gap: var(--skin-space-2);
padding: var(--skin-space-3) var(--skin-space-4);
border-top: 1px solid var(--skin-border);
}
+/* Wrap the primary/secondary actions internally on narrow cards; the
+ * group shrinks and reflows its buttons across rows rather than forcing
+ * the footer to break Delete off. */
.modern-card__foot-group {
- display: inline-flex;
+ display: flex;
+ flex-wrap: wrap;
gap: var(--skin-space-2);
align-items: center;
}
/* Push the danger action to the right. The red outline carries the
* "destructive, different category" signal by itself — no extra divider
- * needed, which would disrupt the button's rounded shape. */
+ * needed, which would disrupt the button's rounded shape. align-self keeps
+ * Delete top-aligned with the first action row when the group wraps (it is
+ * a no-op on single-row cards), so it reads as a top-right peer instead of
+ * floating at the group's vertical centre. */
.modern-card__foot > .modern-btn--danger {
margin-left: auto;
+ align-self: flex-start;
}
/* ── Connector row ─────────────────────────────────────────────────── */