:root{--bg:#f4f5f7;--card:#fff;--border:#d9dce1;--text:#1c1f24;--muted:#6b7280;--accent:#2563eb;--accent-hover:#1d4ed8;--error-bg:#fdecec;--error-border:#f5c2c2;--error-text:#b42318}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}main{max-width:820px;margin:0 auto;padding:32px 20px 64px}h1{font-size:26px;margin:0 0 4px}.subtitle{color:var(--muted);margin:0 0 24px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px}.card h2{font-size:16px;margin:0 0 14px}label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.field{margin-bottom:16px}input[type=file],input[type=text],select{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff;color:var(--text)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.radio-row{gap:18px}.radio-row,.radio-row label{display:flex;align-items:center}.radio-row label{gap:6px;font-weight:500;margin:0;cursor:pointer}button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:12px 20px;font-size:15px;font-weight:600;cursor:pointer;width:100%}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.6;cursor:not-allowed}.error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);padding:10px 12px;border-radius:8px;font-size:14px;margin-bottom:16px}.hint{font-size:12px;color:var(--muted);margin-top:6px}.preview-meta{font-size:14px;margin-bottom:12px;color:var(--muted)}.sheet{background:#fff;border:1px solid var(--border);border-radius:8px;aspect-ratio:1/1.414;max-width:320px;margin:0 auto;padding:6%;display:grid;grid-gap:6%;gap:6%}.cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.cell .qr{background:repeating-conic-gradient(#1c1f24 0 25%,#fff 0 50%) 50% /8px 8px;border:1px solid #1c1f24;width:70%;aspect-ratio:1}.cell .qr.klein{width:50%}.cell .qr.groot{width:88%}.cell .lbl{font-size:7px;color:var(--muted);line-height:1}@media (max-width:560px){.grid{grid-template-columns:1fr}}