/* ⑨ copy button — one 28px borderless icon button for code blocks and table cells (spec ⑨). */
.copy-btn{position:relative;width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--muted,#5b6368);display:inline-flex;align-items:center;justify-content:center;padding:0;flex:none;cursor:pointer;line-height:1;-webkit-tap-highlight-color:transparent}
.copy-btn::after{content:"";position:absolute;inset:-8px}
.copy-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.copy-btn .i-check{display:none}
.copy-btn:hover,.copy-btn:focus-visible{background:var(--pale,#edf4ef);color:var(--green,#1e5d50)}
.copy-btn:focus-visible{outline:2px solid var(--focus,#237d63);outline-offset:2px}
.copy-btn:active{background:var(--green-soft,#e3efe8)}
.copy-btn.is-done{color:var(--green,#1e5d50)}
.copy-btn.is-done .i-copy{display:none}
.copy-btn.is-done .i-check{display:block}
.copy-toast{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);font-size:12px;font-weight:600;line-height:1.4;padding:3px 8px;background:var(--surface,#fff);border:1px solid var(--green,#1e5d50);color:var(--green-deep,#123b32);border-radius:6px;box-shadow:var(--shadow,0 2px 8px rgba(36,42,49,.12));white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:3}
.copy-btn.is-done .copy-toast,.copy-btn.is-fail .copy-toast{opacity:1}
.copy-btn.is-fail{color:var(--amber-ink,#7a4b00)}
.copy-btn.is-fail .copy-toast{background:var(--amber-bg,#fff4dc);border-color:var(--amber-ink,#7a4b00);color:var(--amber-ink,#7a4b00)}
/* code block: button top-right, outside the scrolling <pre> so it never scrolls away */
.copy-block{position:relative;max-width:100%;margin:12px 0}
.copy-block>pre{margin:0;padding-right:44px}
.copy-block>.copy-btn{position:absolute;top:8px;right:8px;z-index:1;background:var(--code-bg,#f1f3ef)}
.copy-block>.copy-btn:hover,.copy-block>.copy-btn:focus-visible{background:var(--pale,#edf4ef)}
/* table cell: command + one button */
.copy-inline{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:6px;align-items:center;width:100%}
.copy-text{min-width:0;overflow-wrap:anywhere}
.copy-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* inline copy buttons sit at the right edge of a cell: open the toast leftward so it never widens the table */
.copy-inline .copy-toast{left:auto;right:0;transform:none}
@media(prefers-reduced-motion:reduce){.copy-toast{transition:none}}
@media print{.copy-btn,.copy-sr{display:none!important}.copy-block>pre{padding-right:16px}}
