/* Copy table (scripts/lib/components/copy-table.mjs): the wrapper adds no box, so the lead
   line, table and caveats keep their prose layout; the bar is a ghost button and a status line. */
.wfg-copy-table { display: contents; }
.wfg-copy-table-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; margin: .25rem 0 .5rem; min-width: 0; }
/* With no box, the wrapper drops out of `.prose > * + *` (styles.css), so its children take
   that 1.1em rhythm themselves. A shown bar keeps its compact gap under the lead and over the
   table; while it is hidden (no script yet) the table takes the full gap. */
.prose > * + .wfg-copy-table > :first-child,
.prose > .wfg-copy-table > * + * { margin-top: 1.1em; }
.prose > .wfg-copy-table > * + .wfg-copy-table-bar { margin-top: .25rem; }
.prose > .wfg-copy-table > .wfg-copy-table-bar:not([hidden]) + * { margin-top: 0; }
.wfg-copy-table-bar[hidden], .wfg-copy-table-manual[hidden] { display: none; }
.wfg-copy-table-status { flex: 1 1 12rem; min-width: 0; margin: 0; font: 400 .9rem/1.4 var(--font-ui); color: var(--ink-2); overflow-wrap: anywhere; }
/* Stays rendered while empty, so screen readers keep the live region. */
.wfg-copy-table-status:empty { margin: 0; }
.wfg-copy-table-manual { display: grid; flex-basis: 100%; gap: .3rem; font: 400 .9rem/1.4 var(--font-ui); color: var(--ink-2); }
.wfg-copy-table-manual textarea { width: 100%; min-width: 0; min-height: 44px; box-sizing: border-box; padding: .5rem; border: 1px solid var(--line-control); border-radius: var(--r-ctl); background: var(--bg); color: var(--ink); font: 400 .9rem/1.45 var(--font-ui); resize: vertical; }
