/* QR File Transfer. Lists reuse the shared transfer rows (collaboration.css); the QR code stays dark-on-white in every
   theme so cameras can read it. */
.qft{display:grid;gap:1rem;min-width:0}
.qft>.panel{min-width:0;margin:0}
.qft-invite{display:grid;justify-items:center;gap:.75rem;text-align:center}
.qft-invite h2{margin:0}
.qft-qr{width:min(280px,100%);aspect-ratio:1;padding:12px;border-radius:16px;background:#fff;box-shadow:0 0 0 1px var(--line)}
.qft-qr svg{display:block;width:100%;height:100%}
.qft-peers{margin:0;font-weight:650}
.qft-invite .hint{margin:0;max-width:44ch}
.qft-link{display:flex;gap:.5rem;width:100%;max-width:520px;min-width:0}
.qft-link input{flex:1;min-width:0;min-height:44px;font-size:16px}
.qft-link .btn,.qft-stop,.qft-receive{min-height:44px}
.qft-receive{margin-top:.75rem;width:100%}
.qft .dropzone input{max-width:100%;min-width:0}
.qft-connect-status{margin:0 0 .75rem;font-weight:600}
.qft-status:empty{display:none}
.qft-status{margin:0}
.qft .transfer-list{margin:.5rem 0 0}
.qft .transfer-file[data-phase=failed]{border-color:var(--danger)}
.qft progress[hidden]{display:none}
/* The shared room session supplies status and lifecycle only; this app connects from its own controls. */
#qft-session .room-session-entry,#qft-session .room-session-controls,#qft-session .room-session-identity{display:none}
@media(max-width:520px){.qft-link{flex-direction:column}}
