:root{--bg:#fff;--text:#1a1a1a;--border:#d0d0d0;--btn-bg:#f5f5f5;--btn-hover:#e8e8e8;--btn-active:#d0d0d0;--placeholder-bg:#f0f0f0;--placeholder-text:#999;--accent:#2563eb}@media (prefers-color-scheme:dark){:root{--bg:#1a1a1a;--text:#e5e5e5;--border:#404040;--btn-bg:#2a2a2a;--btn-hover:#353535;--btn-active:#404040;--placeholder-bg:#252525;--placeholder-text:#666;--accent:#60a5fa}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);justify-content:center;min-height:100dvh;font-family:system-ui,-apple-system,sans-serif;display:flex}.container{flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:480px;padding:2rem 1rem;display:flex}h1{text-align:center;font-size:1.5rem;font-weight:600}.subtitle{color:var(--placeholder-text);text-align:center;margin-top:-.75rem;font-size:.875rem}.footer{color:var(--placeholder-text);text-align:center;flex-direction:column;gap:.375rem;margin-top:1rem;font-size:.75rem;display:flex}.github-link{color:var(--placeholder-text);text-decoration:none;transition:color .15s}.github-link:hover{color:var(--text)}.url-input{width:100%}.url-input input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:8px;outline:none;padding:.75rem 1rem;font-size:1rem;transition:border-color .15s}.url-input input:focus{border-color:var(--accent)}.qr-preview{border:1px solid var(--border);background-image:linear-gradient(45deg,#ccc 25%,#0000 25%),linear-gradient(-45deg,#ccc 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#ccc 75%),linear-gradient(-45deg,#0000 75%,#ccc 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;border-radius:12px;justify-content:center;align-items:center;min-width:280px;max-width:100%;min-height:280px;padding:1rem;display:flex}.qr-preview-inner{justify-content:center;align-items:center;display:flex}.qr-placeholder{color:var(--placeholder-text);font-size:.875rem}.color-pickers{flex-direction:column;gap:.75rem;width:100%;display:flex}.color-picker-row{align-items:center;gap:.75rem;width:100%;min-width:0;display:flex}.color-picker-label{color:var(--text);cursor:pointer;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.color-picker-label span{min-width:5.5em}.color-picker-label input[type=color]{appearance:none;border:1px solid var(--border);cursor:pointer;background:var(--btn-bg);border-radius:6px;width:32px;height:32px;padding:2px}.color-picker-label input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-picker-label input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}.opacity-label{cursor:pointer;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.opacity-label input[type=range]{min-width:0;accent-color:var(--accent);flex:1}.opacity-value{color:var(--placeholder-text);text-align:right;min-width:32px;font-size:.75rem}.action-bar{flex-direction:column;gap:.75rem;width:100%;display:flex}.action-group{flex-direction:column;gap:.5rem;display:flex}.action-label{text-transform:uppercase;letter-spacing:.05em;color:var(--placeholder-text);font-size:.75rem;font-weight:500}.action-buttons{flex-wrap:wrap;gap:.5rem;display:flex}button{border:1px solid var(--border);background:var(--btn-bg);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:6px;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;transition:background .15s}button:hover:not(:disabled){background:var(--btn-hover)}button:active:not(:disabled){background:var(--btn-active)}button:disabled{opacity:.4;cursor:not-allowed}.copy-btn{background:var(--accent);color:#fff;border-color:var(--accent);width:100%;padding:.625rem;font-weight:500}.copy-btn:hover:not(:disabled){opacity:.9;background:var(--accent)}@media (width<=400px){.container{gap:1.25rem;padding:1.5rem .75rem}h1{font-size:1.25rem}.qr-preview{width:100%;min-width:auto;min-height:auto}.qr-preview svg{width:100%;height:auto}.color-picker-label span{min-width:4em;font-size:.8rem}.color-picker-label input[type=color]{width:28px;height:28px}.opacity-value{min-width:28px;font-size:.7rem}.action-buttons button{flex:1;min-width:0;padding:.5rem;font-size:.8rem}}
