:root{--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:40px;--max-width:720px;--font-sans:"Geist", -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, Menlo, monospace}:root,[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}:root[data-theme=light]{--color-canvas:#fff;--color-elevated:#fafafa;--color-ink:#000;--color-ink-contrast:#fff;--color-body:#525252;--color-muted:#737373;--color-hairline:#e5e5e5;--color-input-bg:#fafafa;--color-input-border:#e5e5e5;--color-placeholder:#a3a3a3;--color-link:#0070f3;--color-error:#d40000;--color-warning:#f5a623;--color-skipped-bg:#f3f3f3;--grid-line:#f0f0f0;--badge-bg:#000;--badge-fg:#fff}:root[data-theme=dark]{--color-canvas:#000;--color-elevated:#0a0a0a;--color-ink:#fff;--color-ink-contrast:#000;--color-body:#a1a1a1;--color-muted:gray;--color-hairline:#262626;--color-input-bg:#0a0a0a;--color-input-border:#333;--color-placeholder:#666;--color-link:#3291ff;--color-error:#ff6166;--color-warning:#f7b955;--color-skipped-bg:#141414;--grid-line:#1a1a1a;--badge-bg:#fff;--badge-fg:#000}*{box-sizing:border-box}html{font-size:16px}body{background:var(--color-canvas);color:var(--color-body);font-family:var(--font-sans);margin:0;font-size:1rem;line-height:1.5}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{max-width:var(--max-width);padding:0 var(--space-2) var(--space-5);margin:0 auto}.site-header{z-index:40;background:var(--color-canvas);border-bottom:1px solid var(--color-hairline);position:sticky;top:0}.site-header-inner{max-width:var(--max-width);padding:var(--space-2);align-items:center;gap:var(--space-2);margin:0 auto;display:flex}.brand{align-items:center;gap:var(--space-1);flex-shrink:0;text-decoration:none;display:flex}.brand-badge{background:var(--badge-bg);width:28px;height:28px;color:var(--badge-fg);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.brand-word{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--color-ink);white-space:nowrap;font-size:13px;font-weight:500}.header-chips{align-items:center;gap:var(--space-2);min-width:0;display:flex;overflow:hidden}.header-divider{background:var(--color-hairline);flex-shrink:0;width:1px;height:20px}.status-chip{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:flex}.status-chip svg{flex-shrink:0}@media (width<=768px){.header-chips{display:none}}.theme-toggle{appearance:none;width:32px;height:32px;color:var(--color-ink);border:1px solid var(--color-input-border);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}@media (hover:hover){.theme-toggle:hover{border-color:var(--color-link)}}.icon-moon,:root[data-theme=dark] .icon-sun{display:none}:root[data-theme=dark] .icon-moon{display:block}.back-link{margin-top:var(--space-3);color:var(--color-muted);font-size:.875rem;font-weight:500;text-decoration:none;display:inline-block}@media (hover:hover){.back-link:hover{color:var(--color-ink)}}.content-hero{padding-top:var(--space-3)}.content-hero h1{font-size:2.5rem}.panel>p{margin:0 0 var(--space-2);font-size:.9375rem;line-height:1.65}.panel>p:last-child{margin-bottom:0}.panel code{font-family:var(--font-mono);background:var(--color-input-bg);border:1px solid var(--color-input-border);border-radius:4px;padding:1px 5px;font-size:.85em}.hero{padding:var(--space-5) 0 var(--space-4);margin-bottom:var(--space-3);position:relative;overflow:hidden}.hero:before{content:"";background-image:repeating-linear-gradient(to right, var(--grid-line) 0, var(--grid-line) 1px, transparent 1px, transparent 48px), repeating-linear-gradient(to bottom, var(--grid-line) 0, var(--grid-line) 1px, transparent 1px, transparent 48px);pointer-events:none;z-index:0;position:absolute;inset:0;mask-image:linear-gradient(#000,#0000)}.hero>*{z-index:1;position:relative}.hero h1{margin:0 0 var(--space-1);letter-spacing:-2px;color:var(--color-ink);font-size:3rem;font-weight:600}.app-subtitle{color:var(--color-body);margin:0;font-size:1.125rem}.panel{background:var(--color-elevated);border:1px solid var(--color-hairline);padding:var(--space-3);margin-bottom:var(--space-3);border-radius:8px}.panel h2{margin:0 0 var(--space-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);font-size:.75rem;font-weight:500}.tabs{background:var(--color-input-bg);border:1px solid var(--color-hairline);margin-bottom:var(--space-3);border-radius:100px;align-items:center;gap:2px;padding:3px;display:inline-flex}.tab-button{appearance:none;padding:7px var(--space-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:100px;font-size:12px}.tab-button.is-active{background:var(--color-elevated);border-color:var(--color-hairline);color:var(--color-ink)}.tab-button:focus-visible{box-shadow:0 0 0 2px var(--color-link);outline:none}.tab-panel[hidden]{display:none}.field{margin-bottom:var(--space-2)}.field:last-child{margin-bottom:0}.field-row{gap:var(--space-2);display:flex}.field-row .field{flex:1;min-width:0}label{margin-bottom:var(--space-1);color:var(--color-ink);font-size:.9375rem;font-weight:500;display:block}input[type=text],input[type=number],input[type=file],select,textarea{width:100%;font:inherit;color:var(--color-ink);background:var(--color-input-bg);border:1px solid var(--color-input-border);padding:var(--space-1);border-radius:6px}input::placeholder,textarea::placeholder{color:var(--color-placeholder)}textarea{resize:vertical;font-family:var(--font-mono);font-size:.875rem}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{box-shadow:0 0 0 2px var(--color-link);outline:none}.field-hint{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:.875rem}.field-warning{margin:var(--space-1) 0 0;color:var(--color-error);font-size:.875rem}.csv-columns-hint{color:var(--color-muted);margin:0 0 var(--space-2);font-size:.875rem}.csv-columns-hint code{font-family:var(--font-mono)}button{cursor:pointer}.primary-button{appearance:none;border:1px solid var(--color-ink);background:var(--color-ink);color:var(--color-ink-contrast);font:inherit;padding:var(--space-1) var(--space-2);border-radius:6px;font-weight:600}@media (hover:hover){.primary-button:hover{opacity:.85}}.secondary-button{appearance:none;border:1px solid var(--color-input-border);color:var(--color-ink);font:inherit;padding:var(--space-1) var(--space-2);background:0 0;border-radius:6px;font-weight:500}@media (hover:hover){.secondary-button:hover{border-color:var(--color-link)}}.link-button{appearance:none;color:var(--color-link);font:inherit;padding:var(--space-1) 0;background:0 0;border:none;font-weight:500;text-decoration:underline}.bulk-actions{align-items:center;gap:var(--space-2)}.generate-error{color:var(--color-error);margin:var(--space-2) 0 0}.bulk-preview{margin-top:var(--space-3)}.preview-summary{margin:0 0 var(--space-2);color:var(--color-body);font-size:.9375rem}.table-scroll{border:1px solid var(--color-hairline);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{text-align:left;padding:var(--space-1);border-bottom:1px solid var(--color-hairline);white-space:nowrap}th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);font-size:.75rem;font-weight:500}tbody tr:last-child td{border-bottom:none}tr.row-invalid td{background:color-mix(in srgb, var(--color-error) 10%, var(--color-elevated));color:var(--color-error)}.position-grid{margin-top:var(--space-2);gap:2px;max-width:280px;display:grid}.position-cell{appearance:none;border:1px solid var(--color-hairline);background:var(--color-elevated);font:inherit;color:var(--color-muted);padding:var(--space-1) 0;cursor:pointer;font-size:.6875rem}.position-cell.is-skipped{background:var(--color-skipped-bg);color:var(--color-muted)}.position-cell.is-start{border-color:var(--color-link);color:var(--color-link);font-weight:600}.preview-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.preview-box{flex:1;min-width:220px}.preview-box-label{margin:0 0 var(--space-1);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);font-size:.75rem}.canvas-frame{border:1px solid var(--color-hairline);padding:var(--space-2);background:#fff;border-radius:8px;justify-content:center;align-items:center;display:flex;overflow:auto}canvas{max-width:100%;height:auto;display:block}.instructions-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.instruction-card{border:1px solid var(--color-hairline);padding:var(--space-2);border-radius:8px}.instruction-badge{background:var(--badge-bg);width:32px;height:32px;color:var(--badge-fg);margin-bottom:var(--space-2);border-radius:999px;justify-content:center;align-items:center;display:flex}.instruction-title{color:var(--color-ink);margin:0 0 6px;font-size:.9375rem;font-weight:600}.instruction-body{color:var(--color-muted);margin:0;font-size:.8125rem;line-height:1.5}noscript{background:var(--color-error);color:#fff;text-align:center;padding:var(--space-1);font-size:.875rem;display:block}.site-footer{border-top:1px solid var(--color-hairline);margin-top:var(--space-5)}.footer-inner{max-width:var(--max-width);padding:var(--space-4) var(--space-2);margin:0 auto}.footer-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:2fr 1fr 1fr 1fr;display:grid}.footer-brand-mark{align-items:center;gap:var(--space-1);margin-bottom:var(--space-2);display:flex}.footer-note{color:var(--color-muted);max-width:32ch;margin:0 0 6px;font-size:.8125rem;line-height:1.5}.footer-column-heading{margin:0 0 var(--space-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);font-size:.75rem}.footer-column ul{margin:0;padding:0;list-style:none}.footer-column li{margin-bottom:var(--space-1)}.footer-column a{color:var(--color-body);font-size:.875rem;text-decoration:none}@media (hover:hover){.footer-column a:hover{color:var(--color-ink)}}.footer-bottom{justify-content:space-between;align-items:center;gap:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--color-hairline);font-family:var(--font-mono);color:var(--color-muted);flex-wrap:wrap;font-size:.75rem;display:flex}.footer-runtime{text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;display:inline-flex}.footer-dot{background:var(--color-muted);border-radius:50%;width:6px;height:6px;display:inline-block}@media (width<=640px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.instructions-grid{grid-template-columns:1fr}}@media (width<=560px){.hero h1{font-size:2.25rem}.field-row{flex-direction:column;gap:0}.preview-row{flex-direction:column}}:root{--header-height:65px}[id]{scroll-margin-top:calc(var(--header-height) + var(--space-2))}.breadcrumbs{margin-bottom:var(--space-3);font-size:.8125rem}.breadcrumbs ol{flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{align-items:center;gap:6px;margin:0;display:flex}.breadcrumbs li+li:before{content:"/";color:var(--color-muted)}.breadcrumbs a{color:var(--color-body);text-decoration:none}@media (hover:hover){.breadcrumbs a:hover{color:var(--color-ink);text-underline-offset:2px;text-decoration:underline}}.breadcrumbs [aria-current=page]{color:var(--color-ink)}.compare-table{margin-top:var(--space-2)}.compare-table td:last-child,.compare-table th:last-child{white-space:normal}.compare-table td:first-child{font-family:var(--font-mono);font-weight:500}.compare-table td:first-child a{color:var(--color-ink);text-underline-offset:2px;text-decoration:underline;text-decoration-color:var(--color-hairline)}@media (hover:hover){.compare-table td:first-child a:hover{text-decoration-color:var(--color-ink)}}.compare-table .same-die{font-family:var(--font-sans);color:var(--color-muted);font-size:.75rem;font-weight:400}.panel h2{font-family:var(--font-sans);text-transform:none;letter-spacing:-.01em;color:var(--color-ink);font-size:1.25rem;font-weight:600}#label-tool .panel h2{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);font-size:.75rem;font-weight:500}code{overflow-wrap:anywhere}.table-frame{position:relative}.table-frame:after{content:"";pointer-events:none;background:linear-gradient(to left, var(--color-elevated), transparent);border-radius:0 8px 8px 0;width:32px;position:absolute;top:1px;bottom:1px;right:1px}.scroll-hint{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:.8125rem;display:none}.direct-answer{max-width:60ch;margin:var(--space-2) 0 0;color:var(--color-body);font-size:1.0625rem;line-height:1.65}.step-heading{align-items:center;gap:var(--space-1);margin:0 0 var(--space-2);color:var(--color-ink);letter-spacing:-.01em;font-size:1rem;font-weight:600;display:flex}.step-number{background:var(--color-ink);width:22px;height:22px;color:var(--color-ink-contrast);font-family:var(--font-mono);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:.75rem;font-weight:500;display:inline-flex}.checkline{align-items:center;gap:var(--space-1);margin-top:var(--space-2);color:var(--color-body);cursor:pointer;font-size:.875rem;display:flex}.checkline input{width:16px;height:16px;accent-color:var(--color-link);cursor:pointer}.map-hint{margin-bottom:var(--space-2)}.barcode-metrics{margin:var(--space-1) 0 0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-muted);font-size:.75rem}.barcode-metrics[data-level=warn],.barcode-metrics[data-level=block]{color:var(--color-ink)}.barcode-alert{gap:var(--space-1);margin:var(--space-1) 0 0;padding:var(--space-2);border:1px solid var(--color-hairline);background:var(--color-canvas);color:var(--color-body);border-left-width:3px;border-radius:6px;font-size:.8125rem;line-height:1.6;display:flex}.barcode-alert[data-level=warn]{border-left-color:var(--color-warning)}.barcode-alert[data-level=block]{border-left-color:var(--color-error);color:var(--color-error)}.barcode-alert:before{content:attr(data-label);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:inherit;opacity:.75;flex:none;font-size:.6875rem}.line-map{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.line-row{gap:var(--space-1);grid-template-columns:4.5rem minmax(0,1fr) 5.5rem 6rem;align-items:center;display:grid}.line-index{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);font-size:.75rem}.line-row select{min-width:0}@media (width<=640px){.line-row{grid-template-columns:minmax(0,1fr) 5rem 5.5rem;grid-template-areas:"idx idx idx""col size align"}.line-index{grid-area:idx}.line-row .line-column{grid-area:col}.line-row .line-size{grid-area:size}.line-row .line-align{grid-area:align}}.prose>p,.prose>ul,.prose>ol{margin:0 0 var(--space-2);color:var(--color-body);line-height:1.7}.prose>p:last-child,.prose>ul:last-child,.prose>ol:last-child{margin-bottom:0}.prose h3{margin:var(--space-3) 0 var(--space-1);color:var(--color-ink);font-size:.9375rem;font-weight:600}.prose ul,.prose ol{padding-left:1.25rem}.prose li{margin-bottom:6px}.prose li:last-child{margin-bottom:0}.prose strong{color:var(--color-ink);font-weight:500}.prose a{color:var(--color-ink);text-underline-offset:2px;text-decoration:underline;text-decoration-color:var(--color-hairline)}@media (hover:hover){.prose a:hover{text-decoration-color:var(--color-ink)}}.spec-list{gap:6px var(--space-2);grid-template-columns:max-content minmax(0,1fr);margin:0;font-size:.875rem;display:grid}.spec-list dt{color:var(--color-muted)}.spec-list dd{color:var(--color-ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin:0}.fit-check{margin:var(--space-2) 0 0;padding:var(--space-2);border:1px solid var(--color-hairline);border-left-width:3px;border-left-color:var(--color-muted);color:var(--color-body);border-radius:6px;font-size:.875rem;line-height:1.65}.fit-check strong{color:var(--color-ink);font-weight:500}.format-grid{gap:var(--space-1);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.format-card{padding:var(--space-2);border:1px solid var(--color-hairline);background:var(--color-canvas);color:inherit;border-radius:8px;text-decoration:none;display:block}@media (hover:hover){.format-card:hover{border-color:var(--color-muted)}}.format-card:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.format-card-name{color:var(--color-ink);margin:0 0 2px;font-size:.9375rem;font-weight:500}.format-card-meta{font-family:var(--font-mono);color:var(--color-muted);margin:0;font-size:.75rem}.faq{margin:0}.faq-item{border-bottom:1px solid var(--color-hairline)}.faq-item:last-child{border-bottom:none}.faq-item summary{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) 0;color:var(--color-ink);cursor:pointer;font-size:.9375rem;font-weight:500;line-height:1.5;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";text-align:center;width:1.5rem;font-family:var(--font-mono);color:var(--color-muted);flex:none;font-size:1.125rem;font-weight:400}.faq-item[open] summary:after{content:"−"}.faq-answer{padding:0 0 var(--space-2)}.faq-answer p{max-width:68ch;color:var(--color-body);margin:0;line-height:1.7}.link-list{gap:var(--space-1) var(--space-2);margin:var(--space-2) 0 0;flex-wrap:wrap;padding:0;font-size:.875rem;list-style:none;display:flex}.link-list a{color:var(--color-body);text-underline-offset:2px;text-decoration:underline;text-decoration-color:var(--color-hairline)}@media (hover:hover){.link-list a:hover{color:var(--color-ink)}}.site-nav{align-items:center;gap:var(--space-2);margin-left:auto;font-size:.8125rem;display:flex}.site-nav a{color:var(--color-body);white-space:nowrap;text-decoration:none}@media (hover:hover){.site-nav a:hover{color:var(--color-ink)}}.site-nav a[aria-current=page]{color:var(--color-ink)}@media (width<=720px){.site-nav{display:none}}@media (width>=721px){.footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr 1fr}}@media (width<=720px){.site-header{position:static}:root{--header-height:0px}.primary-button,.secondary-button,.link-button,.tab-button,.position-cell,.field input,.field select,.field textarea,input[type=text],input[type=number],input[type=file],select,textarea{min-height:44px}.theme-toggle{width:44px;height:44px}input,select,textarea{font-size:16px}.checkline{gap:var(--space-2);min-height:44px}.checkline input{flex:none;width:22px;height:22px}.tab-button{font-size:.875rem}.position-cell{min-width:44px;font-size:.75rem}.position-grid{gap:4px;max-width:100%}.hero h1{letter-spacing:-.02em;font-size:2.125rem}.content-hero h1{letter-spacing:-.015em;font-size:1.875rem}.panel h2{font-size:1.125rem}.direct-answer{font-size:1rem}.scroll-hint{display:block}.canvas-frame canvas{max-width:100%;height:auto}}@media (width<=420px){.footer-grid{grid-template-columns:1fr}.hero h1{font-size:1.875rem}.content-hero h1{font-size:1.75rem}.line-row{grid-template-columns:minmax(0,1fr) 4.75rem;grid-template-areas:"idx idx""col col""size align"}}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-link);outline-offset:2px;border-radius:4px}@keyframes status-dot-pulse{0%,to{opacity:1}50%{opacity:.3}}.footer-dot{animation:3s ease-in-out infinite status-dot-pulse}@media (prefers-reduced-motion:reduce){.footer-dot{opacity:1;animation:none}}@media (hover:hover){.format-card,.primary-button,.secondary-button,.link-button,.back-link,.theme-toggle,.breadcrumbs a,.footer-column a,.prose a,.link-list a,.compare-table td:first-child a,.compare-table tbody tr,.faq-item summary,.faq-item summary:after{transition:color .15s,background-color .15s,border-color .15s,text-decoration-color .15s}.format-card:hover{background-color:var(--color-canvas)}.compare-table tbody tr:hover{background-color:var(--color-skipped-bg)}.faq-item summary:hover:after{color:var(--color-ink)}}
