/* ════════════════════════════════════════════════════════════════════════
   SENDIO — the drop-to-send overlay. Loads on every page after player.css
   (tokens live there). Self-contained buttons (.dbtn) so viewer pages that
   don't load sendio.css still render it right.
   ════════════════════════════════════════════════════════════════════════ */

.dropveil{position:fixed;inset:0;z-index:120;display:grid;place-items:center;
  background:rgba(4,5,9,.82);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
  opacity:0;transition:opacity .18s ease}
.dropveil.on{opacity:1}
.dropcard{width:min(460px,92vw);background:var(--surface);border:1px solid var(--border-2);
  border-radius:var(--r);padding:36px 32px;text-align:center;color:var(--body)}
.dropcard h2{font-family:var(--sans);font-weight:800;color:var(--text);
  letter-spacing:-.02em;font-size:21px;margin:16px 0 8px}
.dropcard p{font-size:13.5px;line-height:1.6;color:var(--muted)}

/* ── ask: the breathing zone ── */
.dz{border:1.5px dashed rgba(255,69,69,.55);border-radius:var(--r);padding:34px 20px 28px}
.dzring{width:74px;height:74px;margin:0 auto;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,69,69,.16);border:1.5px solid rgba(255,255,255,.5);
  animation:dbreathe 2.2s var(--ease-out) infinite}
.dzring svg{width:32px;height:32px;fill:#fff}
@keyframes dbreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.dctx{margin-top:12px;font-family:var(--mono);font-size:10.5px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--coral)}

/* ── busy: the progress ring ── */
.ringwrap{position:relative;width:120px;height:120px;margin:0 auto}
.ringwrap svg{width:100%;height:100%;transform:rotate(-90deg)}
.ringwrap circle{fill:none;stroke-width:5;stroke-linecap:round}
.ringwrap .track{stroke:rgba(255,255,255,.12)}
.ringwrap .arc{stroke:var(--coral);stroke-dasharray:326.7;stroke-dashoffset:326.7}
.ringwrap .pct{position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--mono);font-feature-settings:"tnum" 1;font-size:19px;
  font-weight:600;color:#fff}
.dfile{margin-bottom:20px;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;
  color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── done: burst + link ── */
.burst{width:74px;height:74px;margin:0 auto;border-radius:50%;display:grid;place-items:center;
  background:var(--coral);animation:dpop .45s var(--ease-out)}
.burst svg{width:34px;height:34px;fill:#fff}
@keyframes dpop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
.dnote{margin-bottom:18px}
.dlink{display:block;width:100%;margin:0 auto 14px;padding:11px 14px;background:var(--bg);
  border:1px solid var(--border-2);border-radius:var(--r);color:#fff;cursor:pointer;
  font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color .15s}
.dlink:hover{border-color:var(--coral)}

/* ── shared bits ── */
.drow{display:flex;gap:10px;justify-content:center;margin-top:6px}
.dbtn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;
  border-radius:var(--r);font-family:var(--sans);font-weight:600;font-size:13.5px;
  cursor:pointer;transition:background .15s,border-color .15s;color:var(--text)}
.dbtn.primary{background:var(--coral);color:#fff}
.dbtn.primary:hover{background:var(--coral-bright)}
.dbtn.ghost{background:transparent;border:1px solid var(--border-2)}
.dbtn.ghost:hover{border-color:#fff;background:rgba(255,255,255,.04)}

@media(prefers-reduced-motion:reduce){
  .dzring{animation:none}
  .burst{animation:none}
}
