:root{--bg: #0a0c1f;--card: rgba(255,255,255,.07);--text: #eef0ff;--muted: #a7acd4;--primary: #5b4dfa;--primary-text: #fff;--ok: #34d98f;--warn: #ffb840;--err: #ff7a8a;--border: rgba(255,255,255,.14);--track: rgba(255,255,255,.12);--grad: linear-gradient(135deg, #5b4dfa, #9e48f2 55%, #1fc7f2);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);font:18px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(900px 520px at 0% 0%,rgba(158,72,242,.38),transparent 60%),radial-gradient(800px 520px at 100% 100%,rgba(31,199,242,.24),transparent 60%),var(--bg)}main{max-width:640px;margin:0 auto;padding:32px 16px 64px}.brand{font-weight:800;font-size:1.4rem;letter-spacing:.3px;margin-bottom:24px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.card{background:var(--card);border:1px solid var(--border);border-radius:24px;padding:28px;backdrop-filter:blur(12px)}h1{font-size:1.7rem;line-height:1.25;margin:0 0 12px}p{margin:0 0 16px}.muted{color:var(--muted);font-size:.95rem}button{font:inherit;font-weight:600;min-height:52px;padding:0 28px;border-radius:999px;border:1px solid var(--border);background:#ffffff14;color:var(--text);cursor:pointer}button.primary{background:var(--grad);color:var(--primary-text);border-color:transparent;box-shadow:0 8px 24px #7848fa73}button:focus-visible{outline:3px solid #1fc7f2;outline-offset:2px}.row{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.qr{display:grid;place-items:center;background:#fff;border-radius:20px;padding:16px;width:fit-content;margin:8px auto 20px;box-shadow:0 0 0 4px #9e48f259,0 12px 40px #1fc7f240}.qr canvas{display:block;width:min(300px,70vw)!important;height:auto!important}.progress{height:14px;background:var(--track);border-radius:999px;overflow:hidden;margin:12px 0}.progress>div{height:100%;background:var(--grad);width:0;transition:width .2s;border-radius:999px}.notice{border-left:5px solid var(--warn);padding:10px 14px;background:#ffb8401a;border-radius:10px;margin-bottom:16px}.error{border-left-color:var(--err);background:#ff7a8a1a}.ok{color:var(--ok)}ul.files{list-style:none;padding:0;margin:0 0 16px;max-height:240px;overflow:auto;font-size:.95rem}ul.files li{padding:4px 0;border-bottom:1px solid var(--border);word-break:break-all}.sas{font-size:3rem;font-weight:800;letter-spacing:.12em;text-align:center;margin:12px 0 20px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
