:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--text-primary: #333333;--text-secondary: #666666;--border-color: #dee2e6;--shadow: 0 4px 12px rgba(0,0,0,.1);--btn-primary: #007bff;--btn-success: #28a745;--btn-warning: #ffc107;--btn-danger: #dc3545;--transition-theme: all .4s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-primary: #121212;--bg-secondary: #1e1e1e;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--border-color: #333333;--shadow: 0 4px 12px rgba(0,0,0,.4);--btn-primary: #0d6efd;--btn-success: #20c997;--btn-warning: #fd7e14}body{margin:0;padding:0;min-height:100vh;font-family:system-ui,-apple-system,sans-serif;background:radial-gradient(circle at top,#f1f5ff,#fff 45%,#f8f9fa);color:var(--text-primary);line-height:1.5;transition:var(--transition-theme)}[data-theme=dark] body{background:radial-gradient(circle at top,#1b2130,#0c0f18,#05060a)}.app-container{flex:1;max-width:100%;margin:0 auto;padding:1rem;text-align:center;transition:var(--transition-theme)}img,svg{max-width:100%;height:auto}button,input,select,textarea{font:inherit}:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #e9ecef;--text-primary: #1a1a1a;--text-secondary: #6c757d;--text-muted: #adb5bd;--border-color: #dee2e6;--border-light: #e9ecef;--btn-primary: #007bff;--btn-primary-hover: #0056b3;--btn-success: #28a745;--btn-success-hover: #1e7e34;--btn-warning: #ffc107;--btn-warning-hover: #e0a800;--btn-danger: #dc3545;--btn-danger-hover: #c82333;--shadow-sm: 0 2px 4px rgba(0,0,0,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.14);--shadow-xl: 0 20px 40px rgba(0,0,0,.12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--transition-theme: all .4s cubic-bezier(.4, 0, .2, 1);--transition-fast: all .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: all .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: all .5s cubic-bezier(.4, 0, .2, 1);--transition-transform: transform .25s cubic-bezier(.4, 0, .2, 1);--focus-ring: 0 0 0 4px rgba(0, 123, 255, .15);--content-max: 1400px}[data-theme=dark]{--bg-primary: #0a0a0a;--bg-secondary: #121212;--bg-tertiary: #1a1a1a;--text-primary: #f5f5f5;--text-secondary: #b0b3b8;--text-muted: #6b7280;--border-color: #374151;--border-light: #1f2937;--btn-primary: #0d6efd;--btn-primary-hover: #0b5ed7;--btn-success: #20c997;--btn-success-hover: #12b886;--btn-warning: #fd7e14;--btn-warning-hover: #e8590c;--shadow-sm: 0 2px 4px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 24px rgba(0,0,0,.45);--shadow-xl: 0 20px 40px rgba(0,0,0,.5);--focus-ring: 0 0 0 4px rgba(13, 110, 253, .22)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);line-height:1.5;transition:var(--transition-theme)}*{transition-property:background-color,color,border-color,box-shadow,fill,stroke,opacity;transition-duration:.4s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.app-container,.header,.qr-main,.center-section,.qr-preview-wrapper,.info-box,.qr-btn-preset,.qr-input,.qr-upload,.download-btn,.link-display,.qr-svg-wrapper{transition:var(--transition-theme)}#root{min-height:100vh;display:flex;flex-direction:column}img,svg{max-width:100%;height:auto;transition:var(--transition-normal)}button,input,select,textarea{font:inherit;transition:var(--transition-normal)}.app-container{flex:1;max-width:100%;margin:0 auto;padding:var(--space-4);text-align:center}.header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);width:100%}.header-title{display:flex;flex-direction:column;gap:var(--space-1);text-align:left}.header-title h1{margin:0;font-size:clamp(1.25rem,4vw,2rem);font-weight:800;transition:var(--transition-normal)}.header-title h2{margin:0;font-size:clamp(.85rem,2vw,1.05rem);font-weight:500;color:var(--text-secondary);transition:var(--transition-normal)}.theme-toggle{background:none;border:2px solid var(--border-color);border-radius:999px;width:52px;height:52px;cursor:pointer;font-size:1.2rem;display:inline-flex;align-items:center;justify-content:center;color:var(--text-primary);transition:all .4s cubic-bezier(.4,0,.2,1)}.theme-toggle:hover{transform:scale(1.06);box-shadow:var(--shadow-md);border-color:var(--btn-primary)}.theme-toggle:active{transform:scale(1.02);transition:var(--transition-fast)}.theme-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring)}.qr-main{flex:1;display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-4) 0;text-align:center;max-width:var(--content-max);margin:0 auto}.presets-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4);justify-items:center;width:100%}.qr-btn{display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-normal)}.qr-btn-preset{width:100%;max-width:340px;padding:1rem 1.25rem;border:2px solid var(--border-light);border-radius:var(--radius-xl);background:var(--bg-secondary);color:var(--text-primary);font-size:1.05rem;font-weight:700;cursor:pointer;box-shadow:var(--shadow-md);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),background .4s cubic-bezier(.4,0,.2,1),border-color .4s cubic-bezier(.4,0,.2,1),color .4s cubic-bezier(.4,0,.2,1)}.qr-btn-preset:hover{transform:translateY(-2px);border-color:var(--btn-primary);box-shadow:var(--shadow-xl)}.qr-btn-preset:active{transform:translateY(0);transition:var(--transition-fast)}.qr-btn-preset:focus-visible{outline:none;box-shadow:var(--focus-ring)}.qr-btn-preset.preset-active{background:linear-gradient(135deg,var(--btn-primary),var(--btn-primary-hover));border-color:var(--btn-primary);color:#fff;box-shadow:0 8px 24px #007bff40}.center-section{width:100%;max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);background:var(--bg-secondary);border-radius:var(--radius-2xl);border:1px solid var(--border-color);box-shadow:var(--shadow-md);text-align:left}.qr-input,.qr-upload{width:100%;padding:1rem;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:1rem;background:var(--bg-primary);color:var(--text-primary);transition:border-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),background .4s cubic-bezier(.4,0,.2,1),color .4s cubic-bezier(.4,0,.2,1)}.qr-input:focus,.qr-upload:focus{outline:none;border-color:var(--btn-primary);box-shadow:var(--focus-ring)}.qr-input{font-weight:700;letter-spacing:.08em;text-align:center}.logo-label{display:block;width:100%;font-size:1rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2);text-align:left;cursor:default;transition:var(--transition-normal)}.logo-label span{display:block;margin-top:var(--space-1);font-size:.9rem;font-weight:500;color:var(--text-secondary);transition:var(--transition-normal)}.qr-upload{border-style:dashed;background:#00000005;cursor:pointer;transition:border-color .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}.qr-upload:hover{border-color:var(--btn-primary);background:#007bff0d;transform:translateY(-1px)}[data-theme=dark] .qr-upload{background:#ffffff05}[data-theme=dark] .qr-upload:hover{background:#0d6efd14}.qr-btn-generate,.qr-btn-reset-center,.download-btn{width:100%;padding:1.1rem 1.25rem;border:none;border-radius:var(--radius-xl);font-size:1.05rem;font-weight:800;cursor:pointer;box-shadow:var(--shadow-md);text-transform:uppercase;letter-spacing:.03em;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.qr-btn-generate{background:linear-gradient(135deg,var(--btn-success),#20c997);color:#fff}.qr-btn-generate:hover:not(:disabled){transform:translateY(-2px);background:linear-gradient(135deg,#20c997,var(--btn-success-hover));box-shadow:0 12px 28px #28a74a59}.qr-btn-generate:active:not(:disabled){transform:translateY(-1px);transition:var(--transition-fast)}.qr-btn-generate:disabled{background:#6c757d;opacity:.65;cursor:not-allowed;transform:none;box-shadow:var(--shadow-sm)}.qr-btn-reset-center{background:linear-gradient(135deg,var(--btn-warning),var(--btn-warning-hover));color:#1a1a1a}[data-theme=dark] .qr-btn-reset-center{color:#fff}.qr-btn-reset-center:hover{transform:translateY(-2px);background:linear-gradient(135deg,var(--btn-warning-hover),#fd7e14);box-shadow:0 12px 28px #fd7e1459}.qr-btn-reset-center:active{transform:translateY(-1px);transition:var(--transition-fast)}.download-btn{margin-top:var(--space-4);background:linear-gradient(135deg,var(--btn-primary),var(--btn-primary-hover));color:#fff}.download-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px #007bff4d}.download-btn:active:not(:disabled){transform:translateY(-1px);transition:var(--transition-fast)}.download-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.status-success{color:var(--btn-success);font-weight:800;line-height:1.4;transition:var(--transition-normal)}.status-success.pill{display:block;padding:.9rem 1rem;border-radius:var(--radius-lg);color:#fff;background:linear-gradient(135deg,var(--btn-success),var(--btn-success-hover));box-shadow:var(--shadow-md)}.qr-preview-wrapper{width:100%;max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg)}.qr-preview-wrapper span{font-size:clamp(.9rem,2.5vw,1rem);font-weight:700;color:var(--text-primary);transition:var(--transition-normal)}.qr-container{position:relative;margin:0 auto;padding:var(--space-6);background:transparent;border-radius:var(--radius-2xl);max-width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;transition:var(--transition-theme)}.qr-svg-wrapper{width:360px;height:360px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-2xl);border:1px solid var(--border-light);transition:background-color .4s cubic-bezier(.4,0,.2,1),box-shadow .4s cubic-bezier(.4,0,.2,1),border-color .4s cubic-bezier(.4,0,.2,1)}.qr-svg-wrapper--export{background:transparent!important;border:none!important;padding:0!important;box-shadow:none!important}.qr-svg-wrapper--white{padding:20px!important;background:#fff!important;border:none!important}.qr-svg-wrapper svg image{opacity:1!important;visibility:visible!important}[data-theme=dark] .qr-svg-wrapper{border-color:var(--border-color)}[data-theme=dark] .qr-svg-wrapper--white{background:#fff}.qr-svg-wrapper svg{max-width:100%;max-height:100%;transition:var(--transition-normal)}.qr-placeholder,.qr-placeholder-wait{display:grid;place-items:center;width:100%;height:100%;text-align:center;padding:var(--space-4);transition:var(--transition-normal)}.qr-placeholder{color:var(--text-secondary);font-weight:700;font-size:1.05rem}.qr-placeholder-wait{color:var(--btn-primary);font-weight:800;font-size:1.1rem;gap:var(--space-2)}.info-box{width:100%;max-width:900px;margin:0 auto;padding:var(--space-6);background:var(--bg-secondary);border-radius:var(--radius-2xl);border:1px solid var(--border-color);box-shadow:var(--shadow-md);text-align:left}.info-box label{display:block;font-weight:800;margin-bottom:var(--space-3);color:var(--text-primary);transition:var(--transition-normal)}.info-box em{font-style:normal;color:var(--text-secondary);font-weight:700;transition:var(--transition-normal)}.link-display{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.95rem;word-break:break-all;color:var(--btn-primary);cursor:pointer;padding:1rem;background:var(--bg-primary);border:2px solid var(--border-light);border-radius:var(--radius-lg);transition:background .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),border-color .3s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}.link-display:hover{background:linear-gradient(135deg,var(--btn-primary),var(--btn-primary-hover));color:#fff;border-color:var(--btn-primary);transform:translateY(-1px)}@media(min-width:480px){.app-container{padding:var(--space-6)}.presets-grid{grid-template-columns:repeat(2,minmax(0,1fr));justify-items:stretch}@supports selector(.center-section:has(.logo-label)){.center-section:not(:has(.logo-label)){align-items:center}.center-section:not(:has(.logo-label)) .qr-input{flex:1;text-align:center}.center-section:not(:has(.logo-label)) .qr-btn-generate{width:auto;min-width:180px;flex:none;white-space:nowrap}.center-section:has(.logo-label){flex-direction:column;align-items:stretch}}}@media(min-width:768px){.presets-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.qr-preview-wrapper,.center-section,.info-box{padding:var(--space-7)}}@media(min-width:1024px){.header{padding:var(--space-7) var(--space-8)}.app-container{padding:var(--space-6) var(--space-8) var(--space-8)}.qr-main{padding-top:var(--space-6)}}@media(min-width:1200px){.app-container{text-align:left}.qr-main{display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(420px,1.25fr) minmax(320px,1.05fr);grid-auto-rows:auto;column-gap:2.5rem;row-gap:1.75rem;align-items:start;max-width:none;margin:0;padding:var(--space-6) 0}.presets-grid{grid-column:1 / -1;grid-row:1;margin:0}.input-generate-section,.btn-new-center-section{grid-column:1;grid-row:2}.logo-section{grid-column:1;grid-row:3}.qr-preview-wrapper{grid-column:2;grid-row:2 / span 3;max-width:none;margin:0;position:relative}.info-box{grid-column:3;grid-row:2;max-width:none;margin:0;position:sticky;top:2rem;align-self:flex-start}.qr-btn-preset,.qr-btn-generate,.qr-btn-reset-center,.download-btn{width:100%;max-width:none}}@media(min-width:1440px){.header{padding:var(--space-8) 6rem}.app-container{padding-left:6rem;padding-right:6rem}.qr-main{column-gap:3rem}}@media(min-width:1600px){.qr-main{grid-template-columns:minmax(320px,1.05fr) minmax(520px,1.25fr) minmax(380px,1.05fr);column-gap:3.25rem}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.015);opacity:.92}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:479px){.header{flex-direction:column;align-items:stretch;gap:var(--space-4)}.theme-toggle{align-self:flex-end}.center-section,.qr-preview-wrapper,.info-box{padding:var(--space-5)}.qr-svg-wrapper{width:320px;height:320px}}.hidden{display:none!important}.w-100{width:100%!important}.text-left{text-align:left!important}.text-center{text-align:center!important}@supports selector(::-webkit-scrollbar){::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-secondary);transition:var(--transition-theme)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:999px;transition:var(--transition-normal)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}}@media print{body *{visibility:hidden}.qr-svg-wrapper,.qr-svg-wrapper *{visibility:visible}.qr-svg-wrapper{position:absolute;left:0;top:0}}.download-section{width:100%;display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.format-selector{width:100%}.format-label{display:block;font-size:.95rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-3);transition:var(--transition-normal)}.format-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-1);width:100%}.format-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;min-height:auto}.format-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--btn-primary),var(--btn-primary-hover));opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1);z-index:0}.format-btn>*{position:relative;z-index:1}.format-btn:hover{transform:translateY(-2px);border-color:var(--btn-primary);box-shadow:var(--shadow-md)}.format-btn.format-active{border-color:var(--btn-primary);box-shadow:0 4px 16px #007bff40}.format-btn.format-active:before{opacity:1}.format-btn.format-active .format-icon,.format-btn.format-active .format-text,.format-btn.format-active .format-desc{color:#fff}.format-icon{font-size:1.5rem;transition:var(--transition-normal)}.format-text{font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;transition:var(--transition-normal)}.format-desc{font-size:.7rem;font-weight:600;color:var(--text-secondary);transition:var(--transition-normal)}.background-selector{padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-light);transition:var(--transition-theme)}.bg-toggle{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;font-size:.95rem;font-weight:600;color:var(--text-primary);-webkit-user-select:none;user-select:none;transition:var(--transition-normal)}.bg-toggle input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--btn-primary)}.bg-toggle:hover{color:var(--btn-primary)}.download-info{font-size:.9rem;font-weight:600;color:var(--text-secondary);text-align:center;margin:0;padding:var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--btn-primary);transition:var(--transition-theme)}@media(max-width:479px){.format-options{grid-template-columns:1fr;gap:var(--space-2)}.format-btn{flex-direction:row;justify-content:flex-start;padding:var(--space-2) var(--space-3);text-align:left}.format-icon{font-size:1.25rem}.format-text{font-size:.85rem}.format-desc{font-size:.7rem}}@media(min-width:480px)and (max-width:767px){.format-options{grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.format-btn{padding:var(--space-2) var(--space-3)}.format-icon{font-size:1.35rem}}
