:root{--bg:#071019;--bg-soft:#0d1b28;--panel:#fff;--ink:#0b1b2b;--muted:#64748b;--line:#e6eaf0;--brand:#00afab;--brand-600:#00afab;--brand-700:#00908c;--accent:#14c8c3;--ring:rgba(0,175,171,.28);--danger:#dc2626;--danger-bg:#fef2f2;--radius:14px;--shadow:0 20px 45px -20px rgba(2,8,23,.6)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{min-height:100vh;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:radial-gradient(1100px 560px at 82% -12%,rgba(0,175,171,.22),transparent),radial-gradient(820px 460px at -8% 6%,rgba(20,200,195,.14),transparent),var(--bg);-webkit-font-smoothing:antialiased}.page{max-width:1040px;margin:0 auto;padding:48px 20px 72px}.masthead{color:#e2e8f0;margin-bottom:28px}.masthead .brand-wordmark{display:inline-block;font-family:Baloo\ 2,ui-rounded,Segoe UI,system-ui,sans-serif;font-weight:700;font-size:1.7rem;letter-spacing:-.01em;color:var(--brand)}.masthead .brand-name{color:#fff;font-size:1.5rem;letter-spacing:-.02em}.masthead h1{font-size:clamp(1.6rem,2.4vw,2.25rem);margin:18px 0 6px;color:#f8fafc;letter-spacing:-.015em}.masthead p{margin:0;color:#94a3b8;max-width:62ch;line-height:1.55}.grid{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:24px;gap:24px;align-items:start}@media (max-width:860px){.grid{grid-template-columns:1fr}}.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}.card h2{margin:0 0 4px;font-size:1.15rem;letter-spacing:-.01em}.card .hint{margin:0 0 20px;color:var(--muted);font-size:.9rem;line-height:1.5}.field{margin-bottom:16px}.field.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}label{display:block;font-size:.82rem;font-weight:600;color:#334155;margin-bottom:6px}label .req{color:var(--brand)}input[type=email],input[type=tel],input[type=text],input[type=url]{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font-size:.95rem;color:var(--ink);background:#f8fafc;transition:border-color .15s,box-shadow .15s,background .15s}input:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px var(--ring)}.photo-row{display:flex;align-items:center;gap:14px}.photo-preview{width:56px;height:56px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#f1f5f9;flex:none}.file-btn{font-size:.85rem;color:var(--brand-700);font-weight:600;cursor:pointer}.file-btn input{display:none}button.primary{width:100%;padding:13px 16px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--brand),var(--brand-700));color:#fff;font-size:1rem;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:transform .08s,filter .15s,box-shadow .15s;box-shadow:0 10px 24px -10px rgba(228,0,43,.65)}button.primary:hover{filter:brightness(1.06)}button.primary:active{transform:translateY(1px)}button.primary:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.error{background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca;border-radius:10px;padding:10px 12px;font-size:.88rem;margin-bottom:16px}.result{text-align:center}.result .qr-wrap{display:inline-block;padding:16px;background:#fff;border-radius:16px;border:1px solid var(--line)}.result .qr-wrap img{width:240px;height:240px;display:block}.result .name{font-size:1.2rem;font-weight:700;margin:18px 0 2px;letter-spacing:-.01em}.result .role{color:var(--muted);margin:0 0 18px}.wallets{display:flex;flex-direction:column;gap:10px;margin-top:6px}.wallet-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;border-radius:10px;font-weight:600;font-size:.95rem;text-decoration:none;border:1px solid transparent;transition:filter .15s}.wallet-btn:hover{filter:brightness(1.04)}.wallet-btn.apple,.wallet-btn.google{background:#111418;color:#fff}.wallet-btn.disabled{opacity:.4;pointer-events:none}.wallet-label{font-size:.8rem;font-weight:600;color:#475569;margin:20px 0 8px;text-align:left}.link-row{display:flex;gap:8px;margin-top:16px}.link-row input{font-size:.82rem;color:var(--muted)}.ghost-btn{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:.85rem;font-weight:600;color:#334155;cursor:pointer;white-space:nowrap}.ghost-btn:hover{border-color:var(--brand);color:var(--brand)}.badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 9px;border-radius:999px;margin-bottom:14px}.badge.mock{background:#fef9c3;color:#854d0e}.badge.live{background:#dcfce7;color:#166534}.empty{color:var(--muted);font-size:.92rem;text-align:center;padding:40px 10px}.empty .qr-skeleton{width:180px;height:180px;margin:0 auto 18px;border-radius:16px;border:2px dashed var(--line);display:grid;place-items:center;color:#cbd5e1;font-size:2.4rem}.footnote{color:#7c8aa0;font-size:.78rem;margin-top:22px;text-align:center;line-height:1.5}.social-row{display:flex;gap:8px;margin-bottom:8px}.social-row input{flex:1 1}.add-link{background:none;border:none;padding:4px 0}.add-link,.upload-box{color:var(--brand-700);font-weight:600;font-size:.85rem;cursor:pointer}.upload-box{display:flex;align-items:center;justify-content:center;padding:11px 13px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;text-align:center}.upload-box:hover{border-color:var(--brand)}.upload-box input{display:none}.tabs{display:inline-flex;gap:4px;background:#f1f5f9;border-radius:10px;padding:4px;margin:4px 0 18px}.tabs button{border:none;background:none;padding:7px 16px;border-radius:8px;font-size:.85rem;font-weight:600;color:#64748b;cursor:pointer}.tabs button.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(2,8,23,.12)}.scan-note{color:var(--muted);font-size:.85rem;margin:12px 0 0}.biz-card{width:300px;max-width:100%;margin:0 auto;background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 14px 34px -18px rgba(2,8,23,.4);text-align:left}.biz-photo{position:relative;height:210px;background:#e9eef3}.biz-photo>img{width:100%;height:100%;object-fit:cover;display:block}.biz-wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:42px}.biz-logo{position:absolute;right:14px;bottom:8px;width:46px;height:46px;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(2,8,23,.18);display:grid;place-items:center;padding:5px}.biz-logo>img{max-width:100%;max-height:100%;object-fit:contain}.biz-body{padding:16px 18px 18px}.biz-name{font-weight:700;line-height:1.15}.biz-title{font-weight:600;font-size:.9rem;margin-top:8px}.biz-company{font-size:.85rem;opacity:.85;margin-top:2px}.biz-divider{height:1px;background:var(--line);margin:14px 0}.biz-contacts{display:flex;flex-direction:column;gap:12px}.biz-row{display:flex;align-items:center;gap:12px}.biz-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none}.biz-value{font-size:.85rem;font-weight:600;word-break:break-word}.biz-label{font-size:.72rem;color:var(--muted)}.biz-socials{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.biz-social{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;text-decoration:none}.biz-add{width:100%;margin-top:18px;padding:12px;border:none;border-radius:8px;background:#111418;color:#fff;font-weight:600;font-size:.9rem;cursor:pointer}.biz-add:hover{background:#000}.upload-row{display:flex;align-items:center;gap:12px}.upload-thumb{width:44px;height:44px;border-radius:10px;object-fit:contain;background:#f8fafc;border:1px solid var(--line);padding:4px;flex:none}.upload-col{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.upload-col .upload-box{padding:9px 12px}.upload-hint{font-size:.76rem;color:var(--muted)}.upload-reset{align-self:flex-start;background:none;border:none;padding:0;font-size:.76rem;font-weight:600;color:var(--brand-700);cursor:pointer}.settings-section{margin:4px 0 18px;padding-top:14px;border-top:1px solid var(--line)}.settings-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8;margin:0 0 12px}.switch-row{display:flex;align-items:center;gap:10px}.switch{width:42px;height:24px;border-radius:999px;border:none;background:#cbd5e1;padding:3px;cursor:pointer;flex:none;transition:background .15s}.switch.on{background:var(--brand)}.switch-knob{display:block;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(2,8,23,.3);transition:transform .15s}.switch.on .switch-knob{transform:translateX(18px)}.switch-label{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;color:#334155;font-weight:500}.info-dot{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:.68rem;font-style:normal;font-weight:700;cursor:help}.location-input{position:relative;margin-bottom:10px}.location-input .loc-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.location-input input{padding-left:38px;padding-right:34px}.loc-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;border:none;background:#e2e8f0;color:#475569;font-size:.95rem;line-height:1;cursor:pointer;display:grid;place-items:center}.location-map{width:100%;height:200px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.location-map-empty{display:grid;place-items:center;color:var(--muted);font-size:.85rem;background:#f8fafc;border-style:dashed;text-align:center;padding:12px}.qr-download-btn{width:100%;margin-top:14px;padding:11px 16px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--brand-700);font-weight:600;font-size:.88rem;cursor:pointer}.qr-download-btn:hover{border-color:var(--brand)}.qr-download-btn:disabled{opacity:.6;cursor:not-allowed}.wallet-hint{font-size:.78rem;color:var(--muted);margin:8px 0 0;text-align:left;line-height:1.4}