:root{--max:1200px}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}.container{max-width:var(--max);margin:0 auto;padding:16px}.card{background:#fff;border:1px solid #eee;border-radius:16px;padding:16px;box-shadow:0 4px 14px rgba(0,0,0,.05)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:12px;border:1px solid #ddd;background:#fafafa;cursor:pointer;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid #ddd;outline:none}.row{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}@media (min-width:640px){.row-2{grid-template-columns:1fr 1fr}}.label{font-size:12px;font-weight:600;color:#666;margin-bottom:6px}.hstack{align-items:center}.hstack,.vstack{display:flex;gap:8px}.vstack{flex-direction:column}.title{font-size:22px;font-weight:800;margin:0 0 8px}.subtitle{font-size:14px;color:#666;margin:0 0 16px}.link{color:#0366d6;text-decoration:none}.scan-box{width:100%;aspect-ratio:3/4;background:#000;border-radius:12px;overflow:hidden}.small{font-size:12px;color:#777}kbd{background:#eee;border-radius:6px;padding:2px 6px;border:1px solid #ddd}.success{color:#0a7a2f;font-weight:700}.error{color:#a40000;font-weight:700}