@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";:root{--color-paper: #f4efe6;--color-ink: #211e1a;--color-ink-muted: #6b6357;--color-border: #ddd4c2;--color-border-subtle: #b7ac96;--color-surface: #fbf8f2;--color-white: #ffffff;--color-action: #1f4d3a;--color-action-hover: #17392b;--color-action-pressed: #12291f;--color-action-subtle: #e4ebe4;--color-success: #2e7d46;--color-success-subtle: #e6f1e7;--color-warning: #97530a;--color-warning-subtle: #fbead2;--color-error: #a63328;--color-error-subtle: #fbe3de;--color-info: #2b5c86;--color-info-subtle: #e4eef6;--font-sans: "IBM Plex Sans", Arial, sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--radius-control: 6px;--radius-card: 10px}*{box-sizing:border-box}html{background:var(--color-paper)}body{min-width:320px;margin:0;color:var(--color-ink);background:var(--color-paper);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--color-action)}a:hover{color:var(--color-action-hover)}:focus-visible{outline:3px solid #1f4d3a;outline-offset:3px}.tabular-numbers{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.5rem;padding:1rem clamp(1.25rem,5vw,4rem);border-bottom:1px solid var(--color-border)}.brand{color:var(--color-ink);font-weight:700;text-decoration:none}.app-header nav{display:flex;gap:1rem}.app-header nav a{font-weight:600}.app-main{width:min(100% - 2.5rem,75rem);margin:0 auto;padding:clamp(3rem,8vw,6rem) 0}.app-intro{max-width:40rem}.eyebrow{margin:0 0 .5rem;color:var(--color-ink-muted);font-size:.875rem;font-weight:600}h1{margin:0;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}.app-intro>p:not(.eyebrow){max-width:36rem;margin:1rem 0 1.5rem;color:var(--color-ink-muted)}.button{display:inline-flex;align-items:center;min-height:2.75rem;padding:.625rem 1rem;border:1px solid transparent;border-radius:var(--radius-control);font:inherit;font-weight:600;text-decoration:none}.button-primary{color:var(--color-surface);background:var(--color-action)}.button-primary:hover{color:var(--color-surface);background:var(--color-action-hover)}.button-primary:active{background:var(--color-action-pressed)}.button-secondary{color:var(--color-action);border-color:var(--color-action);background:transparent}.button:disabled{cursor:not-allowed;color:var(--color-ink-muted);border-color:var(--color-border);background:var(--color-paper)}.home-page{padding-top:clamp(3rem,7vw,4.5rem);padding-bottom:5rem}.home-hero{max-width:56.25rem;margin:0 auto;text-align:center}.home-hero>p:not(.eyebrow){max-width:43rem;margin:1.125rem auto 0;color:var(--color-ink-muted);font-size:1.0625rem}.use-case-chooser{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem;max-width:68.75rem;margin:3rem auto 0}.use-case-card{display:flex;flex-direction:column;padding:2rem;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.use-case-card-batch{background:var(--color-white)}.use-case-icon{display:grid;width:2.75rem;height:2.75rem;place-items:center;border-radius:8px;color:var(--color-action);background:var(--color-action-subtle);font-size:1.25rem}.use-case-icon-batch{color:var(--color-ink);background:#eee9de}.use-case-card h2{margin:1.25rem 0 0;font-size:1.3125rem;line-height:1.25}.use-case-card>p:not(.batch-unavailable){margin:.5rem 0 0;color:var(--color-ink-muted);font-size:.875rem}.code128-preview,.sheet-preview{margin:1.25rem 0 0;padding:.875rem;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-white)}.barcode-sample{display:block;height:2.375rem;background-image:repeating-linear-gradient(90deg,var(--color-ink) 0 2px,transparent 2px 4px,var(--color-ink) 4px 5px,transparent 5px 8px)}.barcode-sample-alt{background-image:repeating-linear-gradient(90deg,var(--color-ink) 0 3px,transparent 3px 5px,var(--color-ink) 5px 6px,transparent 6px 9px)}.code128-preview figcaption,.sample-sheet figcaption{margin-top:.375rem;color:var(--color-ink-muted);font-family:var(--font-mono);font-size:.625rem;text-align:center}.sheet-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.375rem;background:var(--color-surface)}.sheet-preview>div{height:2rem;border:1px dashed var(--color-border);border-radius:3px}.use-case-card .button{align-self:flex-start;margin-top:1.5rem}.batch-unavailable{margin:.625rem 0 0;color:var(--color-ink-muted);font-size:.8125rem}.home-proof{display:flex;justify-content:center;gap:1.75rem;margin:2.5rem auto 0;padding:0;color:var(--color-ink-muted);font-family:var(--font-mono);font-size:.8125rem;list-style:none}.home-proof li+li:before{margin-right:1.75rem;color:var(--color-border);content:"·"}.sample-sheet{max-width:40rem;margin:2.5rem auto 0;padding:1.75rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-white);box-shadow:0 1px 3px #211e1a0f}.sample-sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.sample-sheet-grid>div{padding:.875rem .625rem;border:1px dashed var(--color-border);border-radius:var(--radius-control);font-family:var(--font-mono);font-size:.625rem;text-align:center}.sample-sheet-grid .barcode-sample{height:2.375rem;margin-bottom:.375rem}.generator-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,6vw,4rem);margin-top:3rem}.generator-form{max-width:34rem}.field-label,.code-type-fieldset legend{display:block;margin-bottom:.5rem;color:var(--color-ink-muted);font-size:.8125rem;font-weight:600}.field-input{width:100%;min-height:3rem;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-surface);font:1rem var(--font-mono)}.field-input-error{border-color:var(--color-error);background:var(--color-error-subtle)}.validation-message{min-height:1.5rem;color:var(--color-error);font-size:.8125rem}.validation-message p{margin:.5rem 0 0}.text-button{padding:0;border:0;color:inherit;background:transparent;font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.code-type-fieldset{margin:1.5rem 0 0;padding:0;border:0}.code-type-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.code-type-option{position:relative}.code-type-option input{position:absolute;opacity:0}.code-type-option span{display:block;padding:.625rem .375rem;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-ink-muted);background:var(--color-surface);font-size:.8125rem;font-weight:600;text-align:center}.code-type-option input:checked+span{border-color:var(--color-action);color:var(--color-action-hover);background:var(--color-action-subtle)}.code-type-option input:focus-visible+span{outline:3px solid var(--color-action);outline-offset:3px}.gs1-notice{margin-top:.75rem;padding:.75rem .875rem;border:1px solid #a9c6dd;border-radius:var(--radius-control);color:#234d6f;background:var(--color-info-subtle);font-size:.8125rem}.download-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}.code-preview{margin:0}.preview-heading{margin:0 0 .5rem;color:var(--color-ink-muted);font-size:.8125rem;font-weight:600}.code-preview-card,.code-preview-empty{min-height:20rem;padding:3rem;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-white);box-shadow:0 1px 3px #211e1a0f}.code-preview-empty{color:var(--color-ink-muted)}.rendered-code{display:grid;min-height:8rem;place-items:center;overflow:auto}.rendered-code svg,.rendered-code canvas{max-width:100%;height:auto}.preview-details{margin:1.5rem 0 0;color:var(--color-ink-muted);font-family:var(--font-mono);font-size:.75rem;text-align:center}.preview-details div{display:inline}.preview-details div+div:before{margin:0 .375rem;content:"·"}.preview-details dt,.preview-details dd{display:inline;margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.batch-page{width:min(100% - 2.5rem,75rem);padding-top:2rem}.batch-stepper{max-width:45rem;margin:0 auto 2.5rem}.batch-stepper ol{display:flex;justify-content:space-between;gap:.75rem;margin:0;padding:0;list-style:none}.batch-stepper li{display:flex;align-items:center;gap:.5rem;color:var(--color-ink-muted);font-size:.875rem}.batch-step-number{display:grid;width:1.75rem;height:1.75rem;place-items:center;border:1px solid var(--color-border-subtle);border-radius:50%;font-family:var(--font-mono)}.batch-step-current,.batch-step-complete{color:var(--color-ink);font-weight:600}.batch-step-current .batch-step-number,.batch-step-complete .batch-step-number{border-color:var(--color-action);color:var(--color-surface);background:var(--color-action)}.batch-page-intro{max-width:44rem}.batch-page-intro>p:not(.eyebrow){margin:.75rem 0 0;color:var(--color-ink-muted)}.batch-upload,.batch-import-result,.batch-mapping-fields,.batch-table-preview,.batch-preview-panel{margin-top:2rem;padding:1.5rem;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.batch-upload{border-style:dashed;text-align:center}.batch-upload-error{border-color:var(--color-error);background:var(--color-error-subtle)}.batch-upload p,.batch-import-result>p{color:var(--color-ink-muted)}.batch-error,.batch-required-message{color:var(--color-error)!important}.batch-success{color:var(--color-success)!important;font-weight:600}.batch-header-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;list-style:none}.batch-header-list li{padding:.25rem .5rem;border-radius:999px;background:var(--color-action-subtle);font-family:var(--font-mono);font-size:.8125rem}.batch-import-table-preview{margin-top:1.5rem}.batch-import-table-preview h3{margin:0 0 .75rem;font-size:1rem}.batch-import-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.batch-desktop-note{margin-top:1.5rem;color:var(--color-ink-muted);font-size:.875rem}.batch-mapping-layout{display:grid;grid-template-columns:minmax(16rem,.75fr) minmax(0,1.5fr);gap:1.5rem}.batch-select-label{display:block;margin-top:1.25rem;font-size:.875rem;font-weight:600}.batch-select-label:first-child{margin-top:0}.batch-select-label span{color:var(--color-ink-muted);font-weight:400}.batch-select-label select{display:block;width:100%;min-height:2.75rem;margin-top:.5rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-white);font:inherit}.batch-table-preview h2{margin:0 0 1rem;font-size:1rem}.batch-table-scroll{overflow-x:auto}.batch-table-scroll table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.8125rem}.batch-table-scroll th,.batch-table-scroll td{padding:.625rem;border-bottom:1px solid var(--color-border);text-align:left}.batch-mapping-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem}.batch-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem}.batch-summary div{padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-white)}.batch-summary strong,.batch-summary span{display:block}.batch-summary strong{font-family:var(--font-mono);font-size:1.75rem;line-height:1}.batch-summary span{margin-top:.375rem;color:var(--color-ink-muted);font-size:.8125rem}.batch-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.batch-preview-toolbar h2{margin:0;font-size:1rem}.batch-filter-group{display:inline-flex;gap:.25rem;padding:.25rem;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-white)}.batch-filter-button{min-height:2rem;padding:.375rem .625rem;border:0;border-radius:calc(var(--radius-control) - 2px);color:var(--color-ink-muted);background:transparent;font:inherit;font-size:.8125rem;font-weight:600}.batch-filter-button[aria-pressed=true]{color:var(--color-action-hover);background:var(--color-action-subtle)}.batch-row-invalid td{background:var(--color-error-subtle)}.batch-export-offer,.batch-export-status{max-width:42rem;margin-top:2rem;padding:1.5rem;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.batch-export-offer h2,.batch-export-status h2{margin:0;font-size:1.25rem}.batch-export-price{margin:1rem 0;color:var(--color-action-hover);font-family:var(--font-mono);font-size:2rem;font-weight:600}.batch-export-offer ul{margin:1rem 0;padding-left:1.25rem}.batch-export-offer li+li{margin-top:.375rem}.batch-export-status>p{color:var(--color-ink-muted)}.preview-details dt:after{content:" : "}.calibration-card{max-width:42rem;margin-top:2rem;padding:1.5rem;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.calibration-card h2{margin:0;font-size:1.25rem}.calibration-card>p{color:var(--color-ink-muted)}.calibration-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0 1rem}.calibration-fields .field-label{color:var(--color-ink)}.calibration-fields .field-input{margin-top:.5rem}.calibration-checklist{display:grid;gap:.75rem;margin-top:1rem}.calibration-checklist label{color:var(--color-ink-muted)}@media(max-width:34rem){.home-hero{text-align:left}.home-hero>p:not(.eyebrow){margin-left:0}.use-case-chooser{grid-template-columns:1fr;gap:1rem;margin-top:1.5rem}.use-case-card{padding:1.5rem 1.25rem}.code128-preview,.sheet-preview{display:none}.use-case-card .button{align-self:stretch;justify-content:center}.home-proof{align-items:flex-start;flex-direction:column;gap:.375rem}.home-proof li+li:before{display:none}.sample-sheet{padding:1.125rem}.generator-layout{grid-template-columns:1fr;gap:1.5rem;margin-top:1.5rem}.code-type-options{grid-template-columns:repeat(2,minmax(0,1fr))}.code-preview-card,.code-preview-empty{min-height:0;padding:1.75rem}.batch-summary,.batch-mapping-layout{grid-template-columns:1fr}.batch-preview-toolbar,.batch-mapping-actions{align-items:stretch;flex-direction:column}.calibration-fields{grid-template-columns:1fr}.sample-sheet-grid{gap:.625rem}}
