/* The copy action stays beside the reading tools; recovery is available without another service. */
.chapter-tools:has(.page-copy-tools) { flex-wrap: wrap; column-gap: 14px; row-gap: 10px; }
.page-copy-tools { position: relative; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.page-copy-button { font: 600 12px var(--sans); color: var(--ink); background: var(--panel); border: 1px solid var(--line2); border-radius: 7px; padding: 8px 12px; min-height: 36px; min-width: 152px; cursor: pointer; white-space: nowrap; }
.page-copy-button::before { content: ''; display: inline-block; width: 9px; height: 11px; margin-right: 9px; vertical-align: -2px; border: 1px solid currentColor; border-radius: 1px; background: var(--panel); box-shadow: -3px -3px 0 -1px var(--panel), -3px -3px 0 0 currentColor; }
.page-copy-button:hover { border-color: var(--accent); color: var(--accent); }
.page-copy-button:disabled { cursor: progress; opacity: .7; }
.page-copy-download { color: var(--muted); font: 11px var(--sans); white-space: nowrap; text-decoration: none; }
.page-copy-download:hover { color: var(--accent); text-decoration: underline; }
.page-copy-status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.page-copy-status:empty { display: none; }
.page-copy-dialog { box-sizing: border-box; width: min(760px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 24px; overflow-y: auto; overscroll-behavior: contain; background: var(--panel); color: var(--ink); border: 1px solid var(--line2); border-radius: 14px; box-shadow: 0 24px 90px #0004; font: 14px/1.5 var(--sans); }
.page-copy-dialog::backdrop { background: #101b1766; }
.page-copy-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.page-copy-dialog h2 { margin: 0; font: 600 25px/1.3 var(--sans); }
.page-copy-close { border: 0; background: none; color: var(--muted); font: 26px var(--sans); width: 36px; height: 36px; margin: -7px -7px 0 0; cursor: pointer; }
.page-copy-description { color: var(--muted); font-size: 13px; margin: 12px 0 20px; }
.page-copy-chapter { font: 11px/1.5 var(--mono); color: var(--muted); margin: 0 0 8px; }
.page-copy-text { box-sizing: border-box; width: 100%; height: min(45dvh, 420px); min-height: 160px; resize: vertical; padding: 14px; color: var(--ink); background: var(--ground); border: 1px solid var(--line2); border-radius: 8px; font: 12px/1.6 var(--mono); }
.page-copy-text::selection { background: #1d4ed8; color: #fff; }
.page-copy-dialog-status { font-size: 12px; color: var(--muted); margin: 12px 0; }
.page-copy-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.page-copy-actions button { font: 600 12px var(--sans); min-height: 40px; padding: 8px 13px; background: var(--panel); color: var(--ink); border: 1px solid var(--line2); border-radius: 6px; cursor: pointer; }
.page-copy-actions .page-copy-select { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.page-copy-file { margin-left: auto; color: var(--accent); font-size: 12px; }
.page-copy-scratch { position: fixed; left: -9999px; top: 0; width: 1px; height: 1px; font-size: 16px; }
.page-copy-tools :focus-visible, .page-copy-dialog :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 700px) {
  .page-copy-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); padding: 19px 16px; }
  .page-copy-text { font-size: 16px; }
}
