html:has(#download-modal[open]) { overflow: hidden; }
#download-modal {
  color-scheme: dark;
  box-sizing: border-box;
  width: min(440px, calc(100% - 32px));
  max-height: calc(100% - 32px);
  overflow: auto;
  overscroll-behavior: contain;
  margin: auto;
  padding: clamp(16px, 5vw, 24px);
  border: 1px solid #63516d;
  border-radius: 18px;
  background: #1b102b;
  color: #f5f0ff;
  text-align: start;
  box-shadow: 0 18px 60px #0007;
}
#download-modal::backdrop { background: #000b; backdrop-filter: blur(5px); }
#download-modal [hidden] { display: none; }
#download-modal h2 { margin: 0 0 16px; font-size: 22px; line-height: 1.25; }
#download-modal .download-address { display: grid; gap: 6px; font-size: 13px; color: #dccee8; }
#download-modal .download-address[hidden] { display: none; }
#download-modal input {
  box-sizing: border-box; width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid #766585;
  border-radius: 9px; font: inherit; background: #130b1e; color: #f5f0ff;
}
#download-modal [role=status] { margin: 12px 0 0; color: #ffe09a; font-size: 14px; }
#download-modal [role=status]:empty { margin: 0; }
#download-modal .download-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-block-start: 18px; }
#download-modal .download-actions > * {
  box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
  padding: 8px 12px; border: 1px solid #766585; border-radius: 10px; font: inherit; font-size: 14px; font-weight: 650;
  line-height: 1.3; text-align: center; text-decoration: none; color: #f5f0ff; background: #30203d; cursor: pointer;
}
#download-modal .download-actions > [hidden] { display: none; }
#download-modal #confirm-download { background: linear-gradient(100deg, #f5a623, #ffe49a); color: #2a1500; border-color: transparent; }
#download-modal .close-download { background: transparent; }
#download-modal :is(button, a, input):focus-visible { outline: 3px solid #ffe397; outline-offset: 2px; }
#download-modal [aria-disabled=true] { opacity: .7; cursor: wait; }
