:root{--bg:#f3f5f9;--card:#fff;--text:#17202b;--muted:#5d6b7c;--border:#d9e0ea;--primary:#00875a;--primary-hover:#006e49;--on-primary:#fff;--accent:#e0a800;--danger:#b3261e;--danger-bg:#fdecec;--shadow:0 1px 2px #1018280d, 0 10px 30px -18px #10182840;--radius:12px;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f141b;--card:#171e27;--text:#e7ecf3;--muted:#9aa8b8;--border:#2a3441;--primary:#1db97c;--primary-hover:#3fcf95;--on-primary:#06231a;--accent:#fc0;--danger:#ff7b72;--danger-bg:#3a1d1d;--shadow:none}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif;line-height:1.45}code{font-family:var(--mono);font-size:.9em}.app{max-width:1100px;margin:0 auto;padding:28px 16px 72px}.brand{color:var(--primary);letter-spacing:.18em;text-transform:uppercase;margin-bottom:2px;font-size:.8rem;font-weight:700;display:inline-block}.app-header h1{letter-spacing:-.01em;margin:0 0 6px;font-size:1.7rem}.app-header p{color:var(--muted);max-width:70ch;margin:0 0 22px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card+.card,.results-anchor>.card,.results-anchor+.card{margin-top:20px}.card h2{margin:0 0 14px;font-size:1.15rem}fieldset{border:0;min-width:0;margin:0 0 20px;padding:0}legend{margin-bottom:10px;padding:0;font-weight:600}.grid-2,.grid-3,.grid-4{gap:12px 16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.spaced{margin-top:12px}@media (width<=960px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.field{flex-direction:column;gap:5px;font-size:.92rem;font-weight:500;display:flex}.hint{color:var(--muted);font-size:.8rem;font-weight:400}input,select{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;min-width:0;padding:8px 10px;font-weight:400}input:focus-visible,select:focus-visible,.btn:focus-visible,.qr-cell:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.radio-row{flex-wrap:wrap;gap:18px;font-weight:400;display:flex}.radio-row label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:9px 16px;font-weight:600;transition:background-color .12s,border-color .12s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:not(:disabled):hover{background:var(--primary-hover)}.btn-secondary{color:var(--text);border-color:var(--border);background:0 0}.btn-secondary:not(:disabled):hover{border-color:var(--primary)}.btn-ghost{color:var(--muted);background:0 0}.btn-ghost:not(:disabled):hover{color:var(--text)}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.errors{background:var(--danger-bg);color:var(--danger);border-radius:8px;margin:0 0 16px;padding:10px 14px}.card.errors{border-color:#0000}.errors ul{margin:0;padding-left:18px}.preview{background:var(--bg);border-radius:10px;align-items:flex-start;gap:16px;margin-bottom:18px;padding:14px;display:flex}.preview img,.preview-placeholder{background:#fff;border-radius:8px;flex:none;width:128px;height:128px}.preview-placeholder{background:var(--border)}.preview-text{flex-direction:column;gap:6px;min-width:0;display:flex}.preview-text>code{word-break:break-all;font-size:.85rem}@media (width<=560px){.preview{flex-direction:column}}.results-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.progress-wrap{flex-direction:column;gap:6px;margin:12px 0;display:flex}.progress{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.progress>div{background:var(--primary);height:100%;transition:width .15s ease-out}.qr-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;margin-top:16px;display:grid}.qr-cell{border:1px solid var(--border);background:var(--card);color:inherit;font:inherit;text-align:center;cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:8px;display:flex}.qr-cell:not(:disabled):hover{border-color:var(--primary)}.qr-cell:disabled{cursor:default}.qr-cell img,.qr-cell .skeleton{aspect-ratio:1;background:#fff;border-radius:6px;width:100%}.qr-cell .skeleton{background:var(--border)}.qr-cell .skeleton.shimmer{background:linear-gradient(90deg, var(--border) 25%, var(--bg) 50%, var(--border) 75%);background-size:200% 100%;animation:1.2s linear infinite shimmer}.qr-cell .code{font-family:var(--mono);word-break:break-all;font-size:.78rem}.qr-cell .num{color:var(--muted);font-size:.72rem}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:16px;display:flex}.help summary{cursor:pointer;font-weight:600}.help p{color:var(--muted)}.help pre{background:var(--bg);border-radius:8px;padding:12px 14px;font-size:.85rem;overflow-x:auto}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.qr-cell .skeleton.shimmer{animation:none}.progress>div{transition:none}}.label-editor{flex-direction:column;gap:12px;display:flex}.file-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.file-btn{display:inline-block}.file-btn input{display:none}.label-canvas-wrap{border:1px solid var(--border);background:var(--bg);border-radius:8px;justify-content:center;width:100%;line-height:0;display:flex;overflow:hidden}.label-canvas-wrap canvas{touch-action:none;cursor:move;background-color:#fff;background-image:repeating-conic-gradient(#d9e0ea 0 25%, transparent 0 50%);background-size:16px 16px;max-width:100%;display:block}.check{align-items:center;gap:8px;font-size:.92rem;font-weight:500;display:flex}.check.inline{font-weight:400}.color-row{align-items:center;gap:12px;min-height:38px;display:flex}input[type=color]{cursor:pointer;width:44px;height:36px;padding:2px}.parts{background:var(--bg);border-radius:8px;flex-direction:column;gap:4px;margin:12px 0;padding:12px 14px;display:flex}.parts ul{margin:6px 0 0;padding-left:18px}.parts a{color:var(--primary);font-family:var(--mono);word-break:break-all;font-size:.85rem}
