:root{--bg: #0b0b14;--panel: #15151f;--panel-2: #1d1d2b;--line: #2a2a3c;--text: #ececf3;--muted: #9a9ab0;--brand: #6366f1;--brand-2: #818cf8;--warn-bg: #2a210f;--warn-line: #6b5417}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(1200px 600px at 50% -10%,#1a1a2e 0%,var(--bg) 55%);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:560px;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 16px calc(40px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.head h1{margin:8px 0 6px;font-size:26px;letter-spacing:-.02em}.head p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px}.banner{border-radius:14px;padding:12px 14px;font-size:13px;line-height:1.5}.banner.warn{background:var(--warn-bg);border:1px solid var(--warn-line);color:#f0d9a0}.banner.info{background:#6366f11f;border:1px solid rgba(99,102,241,.35);color:#c7c9f5}.banner code{background:#ffffff14;padding:1px 5px;border-radius:5px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1 / -1}.field span{font-size:12px;color:var(--muted);padding-left:2px}.field input{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:11px;color:var(--text);padding:12px;font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #6366f140}.logo-row{display:flex;align-items:center;gap:14px;margin-top:16px}.logo-preview{width:72px;height:72px;border-radius:14px;border:1px dashed var(--line);background:var(--panel-2);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto}.logo-preview img{width:100%;height:100%;object-fit:cover}.logo-preview span{font-size:11px;color:var(--muted)}.logo-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:12px;padding:12px 16px;font-size:15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn.primary{width:100%;margin-top:16px;background:linear-gradient(180deg,var(--brand-2),var(--brand));color:#fff}.btn.primary:disabled{opacity:.6;cursor:default}.btn.ghost{background:var(--panel-2);border-color:var(--line);color:var(--text)}.result .btn.primary{margin-top:0}.status{margin:12px 0 0;font-size:13px;color:var(--muted);text-align:center}.result{display:flex;flex-direction:column;align-items:center;gap:14px}.qr{width:260px;height:260px;background:#fff;border-radius:16px;padding:10px}.result-actions{display:flex;gap:10px;width:100%}.result-actions .btn{flex:1}.vcf-link{color:var(--brand-2);font-size:13px;text-decoration:none}.vcf-link:hover{text-decoration:underline}.hint{margin:0;color:var(--muted);font-size:12px;text-align:center}.foot{text-align:center;color:var(--muted);font-size:12px;opacity:.7}.section-title{margin:0 0 14px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.appearance-block{margin-top:16px}.appearance-block:first-of-type{margin-top:0}.appearance-label{display:block;font-size:12px;color:var(--muted);margin-bottom:8px;padding-left:2px}.swatch-row{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:40px;height:40px;padding:3px;border-radius:12px;border:2px solid transparent;background:transparent;cursor:pointer;transition:border-color .15s,transform .1s}.swatch .sw{display:block;width:100%;height:100%;border-radius:9px;border:1px solid rgba(255,255,255,.15)}.swatch:hover{transform:translateY(-1px)}.swatch.active{border-color:var(--brand-2)}.font-row{display:flex;flex-wrap:wrap;gap:8px}.font-chip{background:var(--panel-2);border:2px solid var(--line);border-radius:12px;color:var(--text);padding:8px 12px;cursor:pointer;font-size:18px;line-height:1;display:inline-flex;align-items:baseline;gap:6px}.font-chip em{font-style:normal;font-size:11px;color:var(--muted);font-family:-apple-system,sans-serif}.font-chip.active{border-color:var(--brand-2)}.preview{margin-top:18px;border-radius:16px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.preview-logo{width:48px;height:48px;border-radius:50%;object-fit:cover;margin-bottom:6px;border:2px solid rgba(255,255,255,.5)}.preview-name{font-size:20px;font-weight:700}.preview-sub{font-size:13px;opacity:.85}.preview-qr-placeholder{margin-top:12px;width:84px;height:84px;background:#fff;color:#0b0b14;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;letter-spacing:.1em}.btn.big{margin-top:4px}.btn.link{background:none;border:none;color:var(--muted);text-decoration:underline;font-weight:500;align-self:center}.cardview{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow-y:auto;padding:calc(16px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom))}.cardview-top{display:flex;justify-content:space-between;flex:0 0 auto}.icon-btn{background:#ffffff29;border:1px solid rgba(255,255,255,.25);color:inherit;font:inherit;font-size:14px;font-weight:600;padding:8px 16px;border-radius:999px;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.cardview-body{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:24px 0}.cardview-logo{width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.6);margin-bottom:10px}.cardview-name{margin:0;font-size:clamp(28px,8vw,40px);font-weight:700;line-height:1.1}.cardview-sub{margin:0 0 8px;font-size:16px;opacity:.9}.cardview-qr{margin-top:18px;background:#fff;padding:14px;border-radius:22px;box-shadow:0 20px 50px #00000059}.cardview-qr img{display:block;width:min(64vw,280px);height:min(64vw,280px)}.cardview-caption{margin:14px 0 0;font-size:14px;opacity:.85;letter-spacing:.02em}.cardview-contacts{margin-top:18px;display:flex;flex-direction:column;gap:4px;font-size:14px;opacity:.9}.cardview-tools{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.tool-btn{background:#ffffff29;border:1px solid rgba(255,255,255,.28);color:inherit;font:inherit;font-size:14px;font-weight:600;padding:10px 16px;border-radius:999px;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@media (max-width: 380px){.grid{grid-template-columns:1fr}}
