:root{--qs-primary:#4f46e5;--qs-dark:#312e81;--qs-bg:#f4f5fb}
body{background:var(--qs-bg);color:#1e293b;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding-bottom:env(safe-area-inset-bottom)}
.qs-nav{background:linear-gradient(135deg,#4338ca,#6d28d9);padding:.9rem 0;padding-top:calc(.9rem + env(safe-area-inset-top));box-shadow:0 4px 18px rgba(67,56,202,.25)}
.qs-logo{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.18);display:grid;place-items:center;font-size:1.4rem}
.qs-card{border:0;border-radius:16px;box-shadow:0 2px 14px rgba(30,41,59,.07)}
.card-header{border-bottom:1px solid #eef0f6;padding:.9rem 1.1rem}
.btn-primary{--bs-btn-bg:var(--qs-primary);--bs-btn-border-color:var(--qs-primary);--bs-btn-hover-bg:var(--qs-dark);--bs-btn-hover-border-color:var(--qs-dark)}
.progress-bar{background:linear-gradient(90deg,#6366f1,#8b5cf6)}
.qr-wrap{display:flex;justify-content:center}
#qrcode{padding:12px;background:#fff;border-radius:14px;border:1px solid #e5e7f2;line-height:0}
#qrcode img,#qrcode canvas{max-width:100%;height:auto}
.qs-rules li{margin-bottom:.4rem}.qs-rules i{color:var(--qs-primary);margin-right:.4rem}

.dropzone{border:2px dashed #c7cbe6;border-radius:16px;padding:2.2rem 1rem;text-align:center;cursor:pointer;background:#fafbff;transition:.2s}
.dropzone i{font-size:3rem;color:var(--qs-primary);display:block;line-height:1;margin-bottom:.4rem}
.dropzone:hover,.dropzone:focus,.dropzone.over{border-color:var(--qs-primary);background:#eef0ff;outline:0}
.dropzone.over{transform:scale(1.01)}

.up-item{background:#f7f8fd;border-radius:12px;padding:.7rem .9rem;margin-bottom:.6rem}
.up-item .progress{height:6px}
.file-row{display:flex;align-items:center;gap:.85rem;padding:.85rem 1.1rem}
.file-ico{flex:0 0 44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.35rem;background:#eef0ff;color:var(--qs-primary)}
.file-ico.img{background:#e8f8ef;color:#16a34a}.file-ico.vid{background:#fdecec;color:#dc2626}.file-ico.doc{background:#e8f1fe;color:#2563eb}.file-ico.zip{background:#fff4e0;color:#d97706}.file-ico.aud{background:#f5eafe;color:#9333ea}
.file-main{min-width:0;flex:1}.file-name{font-weight:600;word-break:break-all;line-height:1.25}
.file-meta{font-size:.8rem;color:#64748b}
.cd{font-variant-numeric:tabular-nums}
.cd-badge{background:#fff4e0;color:#b45309;font-weight:600}
.cd-badge.low{background:#fdecec;color:#b91c1c}
.empty-note{padding:2rem 1rem;text-align:center;color:#64748b}
.empty-note i{font-size:2.6rem;color:#a5b4fc;display:block}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22c55e;margin-right:4px;animation:pulse 2s infinite}
.live-dot.off{background:#ef4444;animation:none}
@keyframes pulse{50%{opacity:.35}}
.ended{position:fixed;inset:0;background:rgba(15,23,42,.65);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem}
.ended.d-none{display:none!important}

@media (max-width:575.98px){
  .file-row{flex-wrap:wrap}.file-actions{width:100%;display:flex;gap:.5rem}.file-actions .btn{flex:1}
  .dropzone{padding:1.6rem 1rem}
}

.btn-donate{background:linear-gradient(135deg,#f43f5e,#fb923c);border:0;color:#fff;font-weight:600;box-shadow:0 2px 10px rgba(244,63,94,.35)}
.btn-donate:hover,.btn-donate:focus{color:#fff;filter:brightness(1.08);transform:translateY(-1px)}
.donate-card{background:linear-gradient(180deg,#fff,#fff5f6)}
