:root{--ink:#1b2340;--paper:#eef1f8;--card:#fff;--lemon:#ffd23f;--line:#d5dbea;--mute:#5d6685}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.45 Avenir Next,Nunito,Segoe UI,system-ui,sans-serif}header{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--ink);color:#fff;flex-wrap:wrap}header h1{font-size:19px;margin:0;letter-spacing:.2px}nav{display:flex;gap:4px;flex:1}nav button{background:none;border:0;color:#c9d0ea;padding:7px 14px;border-radius:999px;cursor:pointer;font:inherit}nav button.on{background:var(--lemon);color:var(--ink);font-weight:700}.out{background:none;border:1px solid #4a5483;color:#c9d0ea;border-radius:8px;padding:6px 12px;cursor:pointer}main{max-width:1000px;margin:0 auto;padding:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}h3{margin:0 0 10px;font-size:17px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;align-items:start}.grid3 .card{margin:0}.row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.row input:not(.short),.row select{flex:1;min-width:140px}input,select,button{font:inherit;color:inherit}input,select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.short{width:84px}.num{width:100px}.num.s{width:64px}button{padding:8px 14px;border:1px solid var(--ink);background:#fff;border-radius:8px;cursor:pointer}button.pri{background:var(--ink);color:#fff}button:disabled{opacity:.4;cursor:not-allowed}.x{border:0;background:none;color:var(--mute);font-size:20px;padding:0 8px;line-height:1}ul{list-style:none;margin:0 0 8px;padding:0}li{display:flex;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line)}li b{min-width:44px}li span{flex:1}.lab{margin:10px 0 4px;color:var(--mute);font-size:13px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips label{padding:5px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer;-webkit-user-select:none;user-select:none}.chips label.on{background:var(--lemon);border-color:var(--ink);font-weight:700}.chips input{position:absolute;opacity:0;pointer-events:none}.chips label:focus-within{outline:2px solid var(--ink)}.scroll{overflow-x:auto;max-height:55vh;overflow-y:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:8px;border-bottom:2px solid var(--line);font-size:13px;color:var(--mute);font-weight:600}td{padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.empty{color:var(--mute)}.err{color:#b3261e;margin:0}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:600;color:var(--ink)}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle-track{width:36px;height:20px;background:var(--line);border-radius:999px;position:relative;display:inline-block;transition:background .2s;flex-shrink:0}.toggle input:checked+.toggle-track{background:var(--ink)}.toggle-thumb{width:14px;height:14px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:transform .2s}.toggle input:checked+.toggle-track .toggle-thumb{transform:translate(16px);background:var(--lemon)}.toggle:focus-within .toggle-track{outline:2px solid var(--ink);outline-offset:2px}.row-price{align-items:center}.disabled-input{background:#f1f3f9;color:var(--mute);cursor:not-allowed}.lbl-empty-price{height:11pt;display:block}.login{max-width:320px;margin:20vh auto;display:grid;gap:12px;padding:0 16px}.login h1{margin:0}.sheet{display:flex;flex-direction:column;gap:8px;padding:4px;align-items:flex-start}.lbl-row{display:flex;flex-direction:row;gap:var(--col-gap,2mm);flex-wrap:nowrap}.lbl{background:#fff;color:#000;border:1px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;font:700 7pt/1.15 Arial,sans-serif;overflow:hidden;box-sizing:border-box}.lbl small{font-size:6pt;font-weight:400}.lbl b{font-size:9pt}.lbl .nm{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bc{width:var(--bc-width,50%);max-width:var(--bc-width,50%);height:calc(9mm * var(--bc-h-scale,1));display:block;margin:0 auto;vertical-align:top;box-sizing:border-box}.bc.bc-lg,.lbl.no-price .bc{height:calc(14mm * var(--bc-h-scale,1))}.lbl.no-price .sku-text{font-size:6.5pt;font-weight:700}.bc.bc-qr{width:auto;max-width:var(--bc-width,50%);height:auto;max-height:calc(14mm * var(--bc-h-scale,1));aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;margin:0 auto}.bc.bc-qr .qr-code-svg{width:100%;height:100%;max-width:100%;max-height:100%;display:block}.lbl.lbl-26x15{padding:.6mm 1mm;font-size:5pt;line-height:1}.lbl.lbl-26x15 .nm-tiny{font-size:5pt;font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lbl.lbl-26x15 .bc{height:calc(6mm * var(--bc-h-scale,1))}.lbl.lbl-26x15.no-price .bc{height:calc(8.8mm * var(--bc-h-scale,1))}.lbl.lbl-26x15 .row-tiny{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:4.5pt}.lbl.lbl-26x15 .row-tiny b{font-size:5.5pt}.lbl.lbl-26x15.no-price .row-tiny{justify-content:center}.lbl.lbl-33x15{padding:.6mm 1.2mm;font-size:5.5pt;line-height:1.05}.lbl.lbl-33x15 .top-tiny{display:flex;justify-content:space-between;width:100%;overflow:hidden;white-space:nowrap;font-size:5pt}.lbl.lbl-33x15 .top-tiny .nm-tiny{font-weight:700;overflow:hidden;text-overflow:ellipsis;flex:1;text-align:left}.lbl.lbl-33x15 .top-tiny .var-tiny{margin-left:4px;color:#333}.lbl.lbl-33x15 .bc{height:calc(6.5mm * var(--bc-h-scale,1))}.lbl.lbl-33x15.no-price .bc{height:calc(9.5mm * var(--bc-h-scale,1))}.lbl.lbl-33x15 .row-tiny{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:5pt}.lbl.lbl-33x15 .row-tiny b{font-size:6.5pt}.lbl.lbl-33x15.no-price .row-tiny{justify-content:center}.lbl.lbl-33x25{padding:1mm 1.2mm;font-size:6pt;line-height:1.1}.lbl.lbl-33x25 small{font-size:5pt}.lbl.lbl-33x25 b{font-size:8pt}.lbl.lbl-33x25 .bc{height:calc(8mm * var(--bc-h-scale,1))}.lbl.lbl-33x25.no-price .bc{height:calc(12mm * var(--bc-h-scale,1))}.lbl.lbl-40x30,.lbl.lbl-48x33,.lbl.lbl-50x30{padding:1.2mm 2mm}.lbl.lbl-60x30,.lbl.lbl-76x35{padding:1.5mm 3mm;font-size:7.5pt}.lbl.lbl-60x30 .bc,.lbl.lbl-76x35 .bc{height:calc(10mm * var(--bc-h-scale,1))}.lbl.lbl-60x30.no-price .bc,.lbl.lbl-76x35.no-price .bc{height:calc(15mm * var(--bc-h-scale,1))}.lbl.lbl-60x30 b,.lbl.lbl-76x35 b{font-size:10pt}.lbl.lbl-lg{padding:2.5mm 4mm;font-size:9pt;line-height:1.2}.lbl.lbl-lg .brand-lg{font-size:8pt;font-weight:600;letter-spacing:1px;color:#555}.lbl.lbl-lg .nm-lg{font-size:12pt;font-weight:700;max-width:92mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lbl.lbl-lg .var-lg{font-size:9pt;font-weight:600;color:#333}.lbl.lbl-lg .btm-lg{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:1mm}.lbl.lbl-lg.no-price .btm-lg{justify-content:center}.lbl.lbl-lg .sku-lg{font-size:10pt;font-weight:700;letter-spacing:.5px}.lbl.lbl-lg .price-lg{font-size:14pt;font-weight:900}.lbl.lbl-100x50 .bc{height:calc(18mm * var(--bc-h-scale,1))}.lbl.lbl-100x50.no-price .bc{height:calc(27mm * var(--bc-h-scale,1))}.lbl.lbl-100x70{padding:3.5mm 5mm}.lbl.lbl-100x70 .brand-lg{font-size:9pt}.lbl.lbl-100x70 .nm-lg{font-size:15pt}.lbl.lbl-100x70 .var-lg{font-size:11pt}.lbl.lbl-100x70 .bc{height:calc(26mm * var(--bc-h-scale,1))}.lbl.lbl-100x70.no-price .bc{height:calc(40mm * var(--bc-h-scale,1))}.lbl.lbl-100x70 .sku-lg{font-size:12pt}.lbl.lbl-100x70 .price-lg{font-size:18pt}.size-desc{font-size:12px;color:var(--mute);background:#e4e9f5;padding:6px 12px;border-radius:6px;width:100%;margin:2px 0 6px}.sheet.a4{display:flex;flex-direction:column;gap:0}.sheet.a4 .lbl-row{display:flex;flex-direction:row;gap:var(--col-gap,2mm);margin-bottom:1mm}@media print{.no-print{display:none!important}@page{margin:0!important}html,body{margin:0!important;padding:0!important;background:#fff!important;width:100%!important;height:100%!important;overflow:visible!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}main{margin:0!important;padding:0!important;max-width:none!important;width:100%!important}.sheet{display:block!important;padding:0!important;margin:0!important}.sheet.thermal-sheet .lbl-row{display:flex!important;flex-direction:row!important;gap:var(--col-gap,2mm)!important;margin:0!important;padding:0!important;box-sizing:border-box!important;overflow:hidden!important;page-break-inside:avoid!important;break-inside:avoid!important;page-break-after:always!important;break-after:page!important;height:var(--page-h,30mm)!important;max-height:var(--page-h,30mm)!important;min-height:var(--page-h,30mm)!important}.sheet.thermal-sheet .lbl-row:last-child{page-break-after:avoid!important;break-after:avoid!important}.sheet.thermal-sheet .lbl{border:0!important;margin:0!important;box-sizing:border-box!important;overflow:hidden!important;height:var(--lbl-h,30mm)!important;max-height:var(--lbl-h,30mm)!important;min-height:var(--lbl-h,30mm)!important;width:var(--lbl-w,50mm)!important}.sheet.a4 .lbl-row{display:flex!important;flex-direction:row!important;gap:var(--col-gap,2mm)!important;break-inside:avoid!important}.sheet.a4 .lbl{border:0!important}.sheet.thermal-sheet .lbl .bc,.sheet.a4 .lbl .bc{width:var(--bc-width, 50%)!important;max-width:var(--bc-width, 50%)!important;margin:0 auto!important;display:block!important}.sheet.thermal-sheet .lbl .bc.bc-qr,.sheet.a4 .lbl .bc.bc-qr{width:auto!important;max-width:var(--bc-width, 50%)!important}}.fix-precision-bar{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:10px 14px;margin:8px 0}.fix-precision-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;margin-bottom:8px;color:var(--ink)}.fix-icon{font-size:15px}.fix-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#e2e8f0;color:#334155;font-weight:600}.fix-controls-row{align-items:center;gap:12px;margin:0}.fix-control-item{display:flex;flex-direction:column;gap:3px}.fix-control-item label{font-size:11px;color:var(--mute);font-weight:600}.fix-control-item select{padding:6px 8px;font-size:12px;min-width:140px}.btn-reset-fix{padding:6px 10px;font-size:11px;border-radius:6px;border:1px solid var(--line);background:#fff;cursor:pointer;align-self:flex-end;margin-bottom:2px}.btn-reset-fix:hover{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.fix-tips-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:10px 14px;margin:6px 0 10px;font-size:12px;color:#1e3a8a;line-height:1.5}.fix-tips-box b{color:#1e40af}.fix-tips-box ol{margin:4px 0 0;padding-left:18px}.fix-tips-box li{padding:2px 0;border-bottom:none}.bc-qr{display:flex;align-items:center;justify-content:center;width:100%}.bc-qr .qr-code-svg{height:100%;width:auto;max-width:100%;aspect-ratio:1 / 1;display:block}.grid-master{display:flex;flex-direction:column;gap:16px}.card-barcode-format{margin-top:4px}.card-header-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:10px;margin-bottom:14px}.card-sub{margin:4px 0 0;font-size:13px;color:var(--mute)}.badge-active{background:#e6f4ea;color:#137333;border:1px solid #ceead6;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.format-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-bottom:16px}.format-card{border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer;background:#fff;transition:all .15s ease;display:flex;flex-direction:column;justify-content:space-between;-webkit-user-select:none;user-select:none}.format-card:hover{border-color:var(--ink);background:#fafbfe}.format-card.active{border-color:var(--ink);background:#f7f9ff;box-shadow:0 0 0 2px var(--ink)}.format-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.format-title-group{display:flex;align-items:center;gap:6px}.format-radio{color:var(--ink);font-size:14px;line-height:1}.format-badge{font-size:10px;padding:2px 6px;border-radius:4px;background:#f1f3f9;color:var(--mute);font-weight:600}.format-badge.badge-rec{background:var(--lemon);color:var(--ink)}.format-desc{font-size:12px;color:var(--mute);margin:0 0 8px;line-height:1.35}.format-type-tag{font-size:11px;font-weight:600;color:var(--ink)}.preview-sample-box{background:var(--paper);border-radius:10px;padding:14px;border:1px solid var(--line)}.preview-sample-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}.preview-note{display:block;font-size:12px;color:var(--mute)}.sample-input-wrap{display:flex;align-items:center;gap:6px;font-size:12px}.sample-input-wrap input{padding:4px 8px;font-size:12px;width:130px}.sample-label-stage{display:flex;justify-content:center;padding:14px;background:#fff;border-radius:8px;border:1px dashed var(--line)}.format-alert-text{font-size:12px;color:#855b00;background:#fff8e1;padding:8px 12px;border-radius:6px;margin:10px 0 0;border:1px solid #ffe082}.format-warning{font-size:12px;color:#855b00;background:#fff8e1;padding:6px 12px;border-radius:6px;margin:4px 0 8px;border:1px solid #ffe082}.sku-btn{background:none;border:none;color:var(--ink);cursor:pointer;padding:0;font:inherit;text-decoration:underline;text-decoration-style:dotted}.sku-btn:hover{color:#1a73e8}.btn-preview-sm{padding:3px 8px;font-size:11px;border-radius:4px;border:1px solid var(--line);background:#fff;cursor:pointer}.btn-preview-sm:hover{background:var(--paper)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:999;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{background:#fff;border-radius:12px;max-width:440px;width:100%;box-shadow:0 10px 30px #0003;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.modal-header h4{margin:0;font-size:16px}.modal-body{padding:16px;display:flex;flex-direction:column;gap:12px;align-items:center}.modal-info{text-align:center;font-size:13px}.modal-info code{background:var(--paper);padding:2px 6px;border-radius:4px;font-family:monospace}.modal-format-picker{display:flex;align-items:center;gap:8px;font-size:13px;width:100%;justify-content:center}.modal-preview-stage{padding:16px;background:var(--paper);border-radius:8px;display:flex;justify-content:center;width:100%}.modal-footer{display:flex;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line);background:#fafbfe}.btn-del-prod{padding:3px 8px;font-size:11px;font-weight:500;border-radius:4px;border:1px solid #fecaca;background:#fef2f2;color:#dc2626;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-del-prod:hover{background:#fee2e2;border-color:#f87171;color:#b91c1c}.actions-cell{display:flex;gap:6px;align-items:center}
