@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,300&family=Inter:wght@300;400;500;600;700;800&display=swap");[data-app=qrcode]{--primary:240 6% 10%;--primary-foreground:0 0% 100%;--accent:221 83% 53%;--accent-foreground:0 0% 100%;--background:0 0% 100%;--foreground:240 6% 10%;--card:0 0% 100%;--card-foreground:240 6% 10%;--popover:0 0% 100%;--popover-foreground:240 6% 10%;--secondary:220 13% 95%;--secondary-foreground:240 6% 10%;--muted:220 13% 95%;--muted-foreground:220 9% 46%;--border:220 13% 91%;--input:220 13% 91%;--ring:221 83% 53%;--destructive:0 84% 60%;--destructive-foreground:0 0% 100%;--radius:0.625rem;--font-sans:"Inter",system-ui,sans-serif;--font-display:"DM Sans",system-ui,sans-serif}.dark [data-app=qrcode],[data-app=qrcode].dark{--background:240 10% 6%;--foreground:0 0% 95%;--card:240 10% 9%;--card-foreground:0 0% 95%;--popover:240 10% 9%;--popover-foreground:0 0% 95%;--secondary:240 8% 14%;--secondary-foreground:0 0% 92%;--muted:240 8% 14%;--muted-foreground:220 9% 55%;--border:240 8% 18%;--input:240 8% 18%}[data-app=qrcode]{font-family:var(--font-sans)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}[data-app=qrcode] .animate-fade-in-up{animation:fadeInUp .55s cubic-bezier(.22,1,.36,1) both}[data-app=qrcode] .animate-fade-in{animation:fadeIn .4s ease-out both}[data-app=qrcode] .animate-scale-in{animation:scaleIn .45s cubic-bezier(.22,1,.36,1) both}[data-app=qrcode] .delay-100{animation-delay:.1s}[data-app=qrcode] .delay-200{animation-delay:.2s}[data-app=qrcode] .delay-300{animation-delay:.3s}[data-app=qrcode] .delay-400{animation-delay:.4s}@media (prefers-reduced-motion:reduce){[data-app=qrcode] .animate-fade-in,[data-app=qrcode] .animate-fade-in-up,[data-app=qrcode] .animate-scale-in{animation:none!important;opacity:1!important;transform:none!important}}[data-app=qrcode] .qr-eyebrow{font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:hsl(var(--accent));display:block;margin:0}[data-app=qrcode] .qr-hero{position:relative;background-image:radial-gradient(circle at 15% 50%,hsl(221 83% 53%/.03) 0,transparent 50%)}[data-app=qrcode] .qr-main-grid{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start}@media (min-width:768px){[data-app=qrcode] .qr-main-grid{grid-template-columns:1fr 1fr}}[data-app=qrcode] .qr-type-tabs{display:flex;flex-wrap:wrap;gap:.5rem}[data-app=qrcode] .qr-type-tab{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;border:1.5px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease}[data-app=qrcode] .qr-type-tab:hover{border-color:hsl(var(--accent));color:hsl(var(--accent));background:hsl(var(--accent)/.06)}[data-app=qrcode] .qr-type-tab.active{border-color:hsl(var(--accent));background:hsl(var(--accent));color:hsl(var(--accent-foreground));box-shadow:0 2px 6px hsl(var(--accent)/.3)}[data-app=qrcode] .qr-type-icon{font-family:monospace;font-size:.75rem;font-weight:700}[data-app=qrcode] .qr-fields{display:grid;gap:.875rem}[data-app=qrcode] .qr-field-label{display:block;font-size:.8125rem;font-weight:500;color:hsl(var(--foreground));margin-bottom:.375rem}[data-app=qrcode] .qr-input,[data-app=qrcode] .qr-select{width:100%;padding:.625rem .875rem;border:1.5px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font-size:.9375rem;outline:none;transition:border-color .18s ease,box-shadow .18s ease;font-family:var(--font-sans)}[data-app=qrcode] .qr-input:focus,[data-app=qrcode] .qr-select:focus{border-color:hsl(var(--accent));box-shadow:0 0 0 3px hsl(var(--accent)/.12)}[data-app=qrcode] .qr-input::placeholder{color:hsl(var(--muted-foreground)/.5)}[data-app=qrcode] .qr-textarea{width:100%;padding:.75rem .875rem;border:1.5px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font-size:.9375rem;outline:none;resize:vertical;font-family:var(--font-sans);line-height:1.6;transition:border-color .18s ease}[data-app=qrcode] .qr-textarea:focus{border-color:hsl(var(--accent));box-shadow:0 0 0 3px hsl(var(--accent)/.12)}[data-app=qrcode] .qr-color-field{flex:1}[data-app=qrcode] .qr-color-label{display:block;font-size:.75rem;font-weight:500;color:hsl(var(--muted-foreground));margin-bottom:.375rem}[data-app=qrcode] .qr-color-input-wrap{display:flex;align-items:center;gap:.5rem;padding:.375rem .625rem;border:1.5px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background))}[data-app=qrcode] .qr-color-input{width:28px;height:28px;border:none;padding:0;cursor:pointer;border-radius:4px;background:none}[data-app=qrcode] .qr-color-input::-webkit-color-swatch-wrapper{padding:0}[data-app=qrcode] .qr-color-input::-webkit-color-swatch{border:1px solid hsl(var(--border));border-radius:4px}[data-app=qrcode] .qr-color-hex{font-family:monospace;font-size:.8125rem;color:hsl(var(--muted-foreground));text-transform:uppercase}[data-app=qrcode] .qr-presets{display:flex;flex-wrap:wrap;gap:.5rem}[data-app=qrcode] .qr-preset-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:transparent;cursor:pointer;transition:border-color .15s ease}[data-app=qrcode] .qr-preset-btn:hover{border-color:hsl(var(--accent))}[data-app=qrcode] .qr-preset-btn.active{border-color:hsl(var(--accent));background:hsl(var(--accent)/.06)}[data-app=qrcode] .qr-preset-swatch{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px}[data-app=qrcode] .qr-preset-name{font-size:.75rem;color:hsl(var(--muted-foreground))}[data-app=qrcode] .qr-size-buttons{display:flex;gap:.5rem}[data-app=qrcode] .qr-size-btn{padding:.4375rem .875rem;border:1.5px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease}[data-app=qrcode] .qr-size-btn:hover{border-color:hsl(var(--accent));color:hsl(var(--accent))}[data-app=qrcode] .qr-size-btn.active{border-color:hsl(var(--accent));background:hsl(var(--accent));color:hsl(var(--accent-foreground))}[data-app=qrcode] .qr-preview-card{background:hsl(var(--card));border:1.5px solid hsl(var(--border));border-radius:calc(var(--radius) * 2);padding:clamp(1.5rem,4vw,2.5rem);box-shadow:0 2px 12px hsl(240 6% 10%/.06);position:sticky;top:5rem}[data-app=qrcode] .qr-display{padding:1.5rem;background:hsl(var(--secondary));border-radius:var(--radius)}[data-app=qrcode] .qr-code-wrap,[data-app=qrcode] .qr-display{display:flex;justify-content:center}[data-app=qrcode] .qr-code-wrap svg{width:100%;height:auto;border-radius:4px}[data-app=qrcode] .qr-display-empty{display:flex;align-items:center;justify-content:center;min-height:250px;padding:2rem}[data-app=qrcode] .qr-placeholder-box{text-align:center}[data-app=qrcode] .qr-download-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.875rem 1.5rem;background:hsl(var(--accent));color:hsl(var(--accent-foreground));font-size:.9375rem;font-weight:700;letter-spacing:.02em;border:none;border-radius:var(--radius);cursor:pointer;transition:background .15s ease,transform .1s ease,box-shadow .15s ease;box-shadow:0 2px 8px hsl(var(--accent)/.3)}[data-app=qrcode] .qr-download-btn:hover:not(:disabled){background:hsl(221 83% 46%);transform:translateY(-1px);box-shadow:0 4px 16px hsl(var(--accent)/.35)}[data-app=qrcode] .qr-download-btn:disabled{opacity:.4;cursor:not-allowed}[data-app=qrcode] .qr-faq-grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,5vw,5rem);align-items:start}@media (min-width:900px){[data-app=qrcode] .qr-faq-grid{grid-template-columns:1fr 2fr}}[data-app=qrcode] header{border-bottom:1.5px solid hsl(var(--border));background:hsl(var(--background)/.95);backdrop-filter:blur(12px)}