:root{color-scheme:light;--ink:#101828;--muted:#5f6c82;--line:#d9e0ea;--soft-line:#e9edf3;--paper:#fff;--canvas:#f4f7fb;--navy:#0b1220;--blue:#1769e0;--blue-dark:#0d50b5;--blue-soft:#eaf2ff;--green:#16836b;--red:#c33d52;--red-soft:#fff0f2;--shadow:0 22px 60px #1018281a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--canvas);margin:0;font-size:1rem;line-height:1.55}button,input,select,textarea{font:inherit}button,select{cursor:pointer}a{color:inherit}.skip-link{z-index:20;color:#fff;background:var(--navy);border-radius:.5rem;padding:.7rem 1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header,main,footer{width:min(1180px,100% - 2rem);margin-inline:auto}.site-header{justify-content:space-between;align-items:center;gap:1.5rem;min-height:74px;display:flex}.brand{color:var(--navy);letter-spacing:-.025em;align-items:center;gap:.7rem;font-weight:780;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:var(--navy);border-radius:7px;justify-content:center;align-items:center;gap:2px;width:30px;height:30px;padding:6px;display:inline-flex}.brand-mark i{background:currentColor;width:2px;height:100%}.brand-mark i:nth-child(2),.brand-mark i:nth-child(4){width:3px}.site-header nav{color:var(--muted);align-items:center;gap:1.25rem;font-size:.9rem;font-weight:650;display:flex}.site-header nav a{text-decoration:none}.site-header nav a:hover{color:var(--ink)}.site-header nav a[aria-current=page]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:.35rem;text-decoration-thickness:2px}.locale-label{color:var(--ink);border:1px solid var(--line);background:var(--paper);border-radius:.45rem;padding:.35rem .55rem;font-size:.78rem}main{padding:3rem 0 4.5rem}.intro{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;display:flex}.eyebrow{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .65rem;font-size:.76rem;font-weight:800}.intro h1{max-width:690px;color:var(--navy);letter-spacing:-.06em;margin:0;font-size:clamp(2.25rem,5.2vw,4.6rem);line-height:.98}.intro>div>p:last-child{max-width:620px;color:var(--muted);margin:1.15rem 0 0;font-size:1.05rem}.privacy-note{color:#116450;background:#e7f7f1;border:1px solid #c8e9dd;border-radius:999px;flex:none;align-items:center;gap:.55rem;margin-bottom:.5rem;padding:.65rem .8rem;font-size:.82rem;font-weight:700;display:flex}.privacy-note span{background:var(--green);border-radius:50%;width:8px;height:8px}.format-browser{background:var(--paper);border:1px solid var(--line);border-radius:1rem;margin-bottom:1rem;overflow:hidden;box-shadow:0 8px 24px #1018280d}.format-family-list,.format-variant-list{scrollbar-width:none;display:flex;overflow-x:auto}.format-family-list::-webkit-scrollbar,.format-variant-list::-webkit-scrollbar{display:none}.format-family-list{border-bottom:1px solid var(--soft-line)}.format-family-button,.format-variant-button{min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;font-weight:700;text-decoration:none}.format-family-button{padding:.8rem 1.15rem}.format-family-button.is-active{color:#fff;background:var(--navy)}.qr-family-link{color:#fff;background:var(--blue);letter-spacing:.02em;align-items:center;font-weight:850;display:inline-flex}.qr-family-link:hover{background:var(--blue-dark)}.format-variant-list{align-items:center;gap:.35rem;min-height:58px;padding:.45rem .65rem}.format-variant-button{border-radius:999px;min-height:38px;padding:.55rem .75rem;font-size:.82rem}.format-variant-button.is-active{color:var(--blue);background:var(--blue-soft)}.format-family-button:focus-visible,.format-variant-button:focus-visible{z-index:1;outline-offset:-3px;outline:3px solid #1769e047;position:relative}.format-select-fallback{display:none}.generator-shell{background:var(--paper);border:1px solid var(--line);min-height:510px;box-shadow:var(--shadow);border-radius:1.25rem;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);display:grid;overflow:hidden}.tool-shell{background:var(--paper);border:1px solid var(--line);min-height:475px;box-shadow:var(--shadow);border-radius:1.25rem;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);display:grid;overflow:hidden}.excel-shell{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:1.25rem;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);display:grid;overflow:hidden}.excel-controls,.excel-preview{padding:clamp(1.4rem,4vw,2.75rem)}.excel-controls{border-right:1px solid var(--soft-line)}.excel-preview{background:#fbfcfe;min-width:0}.file-input{letter-spacing:normal;padding:.65rem;font-family:inherit;font-size:.9rem}.file-input::file-selector-button{min-height:36px;color:var(--ink);background:var(--blue-soft);border:0;border-radius:.45rem;margin-right:.75rem;padding:.45rem .75rem;font-weight:700}.secondary-action{min-height:42px;color:var(--navy);font:inherit;background:#fff;border:1px solid #9dbce8;border-radius:.55rem;align-items:center;margin-top:.85rem;padding:.65rem .8rem;font-size:.83rem;font-weight:750;text-decoration:none;display:inline-flex}.qr-bulk-shell{border-color:#a9c9f7;margin-top:1.5rem}.qr-bulk-shell .excel-controls{background:linear-gradient(145deg,#f7faff,#f1f8ff)}.qr-bulk-shell .section-heading>span:first-child{color:#fff;background:var(--blue)}.mapping-fields,.error-mode{border:0;min-width:0;margin:2rem 0 0;padding:0}.mapping-fields .section-heading{display:flex}.mapping-fields .section-heading>span:last-child{width:auto;height:auto;color:inherit;text-align:left;background:0 0;border-radius:0;display:block}.mapping-fields .section-heading strong,.mapping-fields .section-heading small{display:block}.mapping-fields .section-heading strong{color:var(--navy);font-size:1.24rem}.mapping-fields .section-heading small{color:var(--muted);margin-top:.2rem;font-size:.9rem;font-weight:400}.excel-field-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.excel-field-grid .field-group+.field-group{margin-top:0}.error-mode legend{color:#344054;margin-bottom:.65rem;font-size:.86rem;font-weight:700}.error-mode label{color:var(--ink);align-items:center;gap:.55rem;margin-top:.55rem;font-size:.9rem;display:flex}.error-mode input{width:18px;min-height:18px;margin:0}.workbook-note,.workbook-warning{color:var(--muted);border:1px solid var(--soft-line);background:#f6f8fb;border-radius:.6rem;margin:1.25rem 0 0;padding:.8rem;font-size:.82rem;line-height:1.45}.workbook-warning{color:#8a4b08;background:#fff7e8;border-color:#f2d39e}.excel-status{min-height:1.5rem;color:var(--muted);margin:0 0 1rem;font-size:.9rem}.summary-cards{grid-template-columns:repeat(4,1fr);gap:.65rem;margin-bottom:1rem;display:grid}.summary-cards>div{border:1px solid var(--line);background:#fff;border-radius:.65rem;padding:.8rem}.summary-cards span,.summary-cards strong{display:block}.summary-cards span{color:var(--muted);font-size:.75rem}.summary-cards strong{color:var(--navy);margin-top:.2rem;font-size:1.3rem}.summary-cards .is-valid strong{color:var(--green)}.summary-cards .is-invalid strong{color:var(--red)}.sample-preview{border:1px solid var(--line);background:#fff;border-radius:.7rem;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.sample-preview span{color:var(--muted);font-size:.8rem;font-weight:700}.sample-preview img{max-width:min(72%,260px);max-height:88px;display:block}.excel-table-wrap{border:1px solid var(--line);background:#fff;border-radius:.7rem;max-height:370px;overflow:auto}.excel-table-wrap table{border-collapse:collapse;width:100%;font-size:.8rem}.excel-table-wrap th,.excel-table-wrap td{border-bottom:1px solid var(--soft-line);text-align:left;vertical-align:top;padding:.7rem}.excel-table-wrap th{color:#344054;background:#f6f8fb;font-size:.75rem;position:sticky;top:0}.excel-table-wrap td:first-child,.excel-table-wrap td:nth-child(3){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.excel-table-wrap .row-invalid td:last-child{color:var(--red);font-weight:650}.excel-table-wrap .row-valid td:last-child{color:var(--green);font-weight:650}.excel-errors{max-height:150px;color:var(--red);background:var(--red-soft);border-radius:.65rem;margin:1rem 0 0;padding:.85rem .85rem .85rem 2rem;font-size:.82rem;overflow:auto}.excel-errors li+li{margin-top:.35rem}.excel-generate{width:100%;margin-top:1rem}.generate-button:disabled{cursor:not-allowed;opacity:.48}.download-card{background:#e7f7f1;border:1px solid #c8e9dd;border-radius:.7rem;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1rem;display:flex}.download-card strong,.download-card p,.download-card small{margin:0;display:block}.download-card p,.download-card small{color:#39675b;margin-top:.25rem;font-size:.8rem}.download-link{color:#fff;background:var(--navy);border-radius:.55rem;flex:none;padding:.75rem .9rem;font-size:.85rem;font-weight:750;text-decoration:none}.generator-form,.preview-panel,.tool-form,.result-panel{padding:clamp(1.4rem,4vw,2.75rem)}.generator-form{border-right:1px solid var(--soft-line);flex-direction:column;display:flex}.bulk-shortcut{background:linear-gradient(135deg,#f2f7ff,#eefbf7);border:1px solid #bdd4f5;border-radius:.75rem;margin-top:auto;padding:1rem}.bulk-shortcut strong{color:var(--navy);font-size:1rem}.bulk-shortcut p{color:var(--muted);margin:.3rem 0 0;font-size:.84rem;line-height:1.45}.bulk-shortcut-actions{flex-wrap:wrap;gap:.65rem;margin-top:.9rem;display:flex}.bulk-shortcut-actions button,.bulk-shortcut-actions a{min-height:42px;color:var(--navy);font:inherit;background:#fff;border:1px solid #9dbce8;border-radius:.55rem;justify-content:center;align-items:center;padding:.65rem .8rem;font-size:.83rem;font-weight:750;text-decoration:none;display:inline-flex}.bulk-shortcut-actions a{color:#fff;background:var(--blue);border-color:var(--blue)}.bulk-shortcut .download-status{margin-bottom:0}.tool-form{border-right:1px solid var(--soft-line);flex-direction:column;display:flex}.preview-panel{background:#fbfcfe;flex-direction:column;display:flex}.result-panel{background:#fbfcfe}.section-heading{align-items:flex-start;gap:.9rem;margin-bottom:2.25rem;display:flex}.section-heading>span{width:34px;height:34px;color:var(--blue);background:var(--blue-soft);border-radius:.55rem;flex:none;place-items:center;font-size:.75rem;font-weight:800;display:grid}.section-heading h2{color:var(--navy);letter-spacing:-.02em;margin:-.15rem 0 .15rem;font-size:1.24rem;line-height:1.35}.section-heading p{color:var(--muted);margin:0;font-size:.9rem}.field-group+.field-group{margin-top:1.5rem}.field-group label,.label-row>span{color:#344054;font-size:.86rem;font-weight:700}.label-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.label-row>span{color:#7a8699;font-weight:500}input,select,textarea{width:100%;min-height:52px;color:var(--ink);background:var(--paper);border:1px solid #bcc6d5;border-radius:.62rem;outline:none;margin-top:.55rem;padding:.78rem .9rem}input{letter-spacing:.035em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.05rem}textarea{resize:vertical;min-height:145px;font-size:1rem;line-height:1.5}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline-offset:2px;border-color:var(--blue);outline:3px solid #1769e03b}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--red);background:var(--red-soft)}.select-wrap{position:relative}.field-hint,.validation-message{color:var(--muted);margin:.55rem 0 0;font-size:.83rem}.validation-message{color:var(--red);font-weight:650}.validation-message.is-note{color:var(--green)}.generate-button{color:#fff;background:var(--navy);border:1px solid var(--navy);border-radius:.62rem;justify-content:space-between;align-items:center;gap:1rem;min-height:50px;margin-top:auto;padding:.8rem 1rem;font-weight:750;display:flex}.generate-button:hover{background:#18243a}.preview-heading{margin-bottom:1.5rem}.barcode-stage{border:1px solid var(--line);background-color:#fff;background-image:linear-gradient(#edf1f6 1px,#0000 1px),linear-gradient(90deg,#edf1f6 1px,#0000 1px);background-size:18px 18px;border-radius:.8rem;place-items:center;min-height:260px;padding:1.5rem;display:grid;overflow:auto hidden}.barcode-stage.has-error:after{content:"No valid preview";color:var(--muted);font-size:.9rem}#barcode-preview{max-width:100%;height:auto;display:block}.qr-stage{overflow:hidden}.qr-stage .qr-preview{width:min(100%,330px);height:auto;display:block}.qr-empty-message{max-width:260px;color:var(--muted);text-align:center;margin:0}.download-actions{grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1rem;display:grid}.download-button{min-height:67px;color:var(--ink);background:var(--paper);text-align:left;border:1px solid #b8c3d3;border-radius:.62rem;flex-direction:column;justify-content:center;align-items:flex-start;padding:.72rem .9rem;display:flex}.download-button.primary{color:#fff;background:var(--blue);border-color:var(--blue)}.download-button:hover:not(:disabled){border-color:var(--blue)}.download-button.primary:hover:not(:disabled){background:var(--blue-dark)}.download-button:disabled{cursor:not-allowed;opacity:.5}.download-button span{font-weight:750}.download-button small{color:inherit;opacity:.72;margin-top:.1rem;font-size:.74rem}.download-status{min-height:1.25rem;color:var(--green);margin:.55rem 0 0;font-size:.8rem;font-weight:650}.result-card{background:var(--paper);border:1px solid var(--line);border-radius:.85rem;flex-direction:column;justify-content:center;align-items:flex-start;min-height:300px;padding:clamp(1.5rem,4vw,2.5rem);display:flex}.result-card.is-valid{background:#f5fcf9;border-color:#a9d8c8}.result-card.is-invalid{background:#fff8f9;border-color:#edbdc5}.result-icon{width:44px;height:44px;color:var(--muted);background:#edf1f6;border-radius:50%;place-items:center;margin-bottom:1.25rem;font-size:1.2rem;font-weight:850;display:grid}.is-valid .result-icon{color:#fff;background:var(--green)}.is-invalid .result-icon{color:#fff;background:var(--red)}.result-kicker{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;margin:0 0 .35rem;font-size:.76rem;font-weight:800}.result-card h2{color:var(--navy);letter-spacing:-.04em;margin:0;font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.1}.result-card>p:last-of-type{max-width:520px;color:var(--muted);margin:.75rem 0 0}.result-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;width:100%;margin:1.6rem 0 0;display:grid}.result-details[hidden],.result-details div[hidden]{display:none}.result-details div{border:1px solid var(--line);background:#ffffffc7;border-radius:.6rem;min-width:0;padding:.8rem .9rem}.result-details dt{color:var(--muted);font-size:.75rem;font-weight:700}.result-details dd{overflow-wrap:anywhere;color:var(--navy);margin:.3rem 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;font-weight:750}.format-strip{grid-template-columns:.75fr 1.25fr;align-items:end;gap:3rem;margin-top:4.5rem;display:grid}.format-strip h2{color:var(--navy);letter-spacing:-.04em;margin:0;font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.08}.format-strip ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.format-strip li{background:var(--paper);border:1px solid var(--line);border-radius:.62rem;justify-content:space-between;align-items:center;min-height:52px;padding:.7rem .9rem;font-weight:700;display:flex}.format-strip li span{color:var(--green)}footer{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.6rem 0 2.25rem;font-size:.84rem;display:flex}footer span{color:var(--navy);font-weight:780}footer p{margin:0}.noscript-message{color:#fff;background:var(--red);text-align:center;border-radius:.6rem;padding:1rem;position:fixed;bottom:1rem;left:1rem;right:1rem}@media (width<=800px){main{padding-top:1.8rem}.intro{display:block}.privacy-note{width:fit-content;margin-top:1.25rem}.generator-shell,.tool-shell,.excel-shell{grid-template-columns:1fr}.excel-controls{border-right:0;border-bottom:1px solid var(--soft-line)}.generator-form{border-right:0;border-bottom:1px solid var(--soft-line);min-height:490px}.tool-form{border-right:0;border-bottom:1px solid var(--soft-line);min-height:450px}.format-strip{grid-template-columns:1fr;gap:1.5rem}}@media (width<=520px){.site-header,main,footer{width:min(100% - 1.1rem,1180px)}.site-header{flex-wrap:wrap;min-height:64px;padding:.85rem 0 .7rem}.site-header nav{white-space:nowrap;scrollbar-width:none;order:2;gap:1rem;width:100%;padding-bottom:.25rem;overflow-x:auto}.site-header nav::-webkit-scrollbar{display:none}.site-header .locale-label{margin-left:auto}main{padding-bottom:3.5rem}.intro h1{font-size:2.7rem}.generator-shell,.tool-shell,.excel-shell{border-radius:.9rem}.generator-form,.preview-panel,.tool-form,.result-panel,.excel-controls,.excel-preview{padding:1.2rem}.excel-field-grid,.summary-cards{grid-template-columns:1fr 1fr}.download-card,.sample-preview{flex-direction:column;align-items:stretch}.sample-preview img{max-width:100%}.section-heading{margin-bottom:1.6rem}.generator-form{min-height:465px}.tool-form{min-height:440px}.result-card{min-height:275px}.result-details{grid-template-columns:1fr}.barcode-stage{min-height:220px;padding:1rem}.download-actions{grid-template-columns:1fr}.format-strip{margin-top:3.25rem}.format-strip ul{grid-template-columns:1fr}footer{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.format-picker>legend.section-heading{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1rem;width:100%;max-width:none;padding:0;display:grid}.format-picker>legend.section-heading>span:last-child{width:auto;min-width:0;height:auto;color:inherit;text-align:left;background:0 0;border-radius:0;display:block}.format-picker>legend.section-heading strong,.format-picker>legend.section-heading small{display:block}.format-picker>legend.section-heading strong{color:var(--navy);font-size:1.08rem;line-height:1.3}.format-picker>legend.section-heading small{max-width:none;color:var(--muted);margin-top:.15rem;font-size:.86rem;font-weight:400;line-height:1.4}main.excel-page .format-picker .format-card input[type=radio]{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;position:absolute}main.excel-page .format-picker .format-card-copy{padding-right:0}main.excel-page .format-picker .format-card:has(input:focus-visible){outline-offset:3px;outline:3px solid #1769e047}
