*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--gray-50: #fafafa;--gray-100: #f5f5f5;--gray-200: #e5e5e5;--gray-300: #d4d4d4;--gray-400: #a3a3a3;--gray-500: #737373;--gray-600: #525252;--gray-700: #404040;--gray-800: #262626;--gray-900: #171717;--gray-950: #0a0a0a;--bg-primary: var(--gray-950);--bg-secondary: var(--gray-900);--bg-tertiary: var(--gray-800);--bg-elevated: var(--gray-800);--text-primary: var(--gray-50);--text-secondary: var(--gray-400);--text-muted: var(--gray-500);--border-primary: var(--gray-700);--border-secondary: var(--gray-800);--accent: var(--gray-100);--accent-hover: var(--gray-50);--success: #22c55e;--warning: #eab308;--error: #ef4444;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Courier New", monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(255, 255, 255, .05);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;color:var(--text-primary)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{color:var(--text-secondary)}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--gray-600);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--gray-600);color:var(--text-primary)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-6)}.card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-6);transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:var(--shadow-glow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-family:var(--font-sans);font-size:.875rem;font-weight:500;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.btn-primary{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.btn-primary:hover{background:var(--gray-200);border-color:var(--gray-200)}.btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--border-primary)}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--gray-500)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.input{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:.875rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);transition:border-color var(--transition-fast)}.input::placeholder{color:var(--text-muted)}.input:focus{outline:none;border-color:var(--gray-500)}.label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-2)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:.75rem;font-weight:500;border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary)}.badge-success{background:#22c55e1a;color:var(--success)}.divider{height:1px;background:var(--border-secondary);margin:var(--space-6) 0}.header{padding:var(--space-4) 0;border-bottom:1px solid var(--border-secondary)}.header-content{display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:var(--space-3);font-size:1.25rem;font-weight:600;color:var(--text-primary)}.logo-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.main{flex:1;padding:var(--space-10) 0}.footer{padding:var(--space-6) 0;border-top:1px solid var(--border-secondary);text-align:center}.footer p{font-size:.875rem;color:var(--text-muted)}.generator-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:start}@media (max-width: 768px){.generator-grid{grid-template-columns:1fr}}.qr-preview{display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}.qr-canvas-container{background:#fff;padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.options-section{display:flex;flex-direction:column;gap:var(--space-4)}.option-group{display:flex;flex-direction:column;gap:var(--space-2)}.color-picker-row{display:flex;align-items:center;gap:var(--space-3)}.color-input{width:40px;height:40px;padding:0;border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;background:transparent}.color-input::-webkit-color-swatch-wrapper{padding:2px}.color-input::-webkit-color-swatch{border:none;border-radius:var(--radius-sm)}.download-buttons{display:flex;flex-wrap:wrap;gap:var(--space-2)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.stat-label{font-size:.875rem;color:var(--text-muted);margin-top:var(--space-1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-out}.animate-slide-up{animation:slideUp var(--transition-normal) ease-out}
