:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#122033;background:#eef2f7;font-size:16px}*{box-sizing:border-box}body{margin:0;background:#eef2f7}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;padding:14px max(18px,calc((100vw - 1080px)/2));background:#08182d;color:#fff;box-shadow:0 4px 18px rgba(8,24,45,.22)}.brand-mark{color:#fff;text-decoration:none;font-size:1.55rem;font-weight:900;font-style:italic;letter-spacing:-.04em}.brand-mark span{display:block;margin-top:-4px;color:#61baff;font-size:.65rem;font-style:normal;letter-spacing:.12em;text-transform:uppercase}.topbar-copy{display:flex;flex-direction:column;margin-right:auto}.topbar-copy strong{font-size:1rem}.topbar-copy small{color:#9eb2cb}.scan-shell{max-width:1080px;margin:auto;padding:20px}.panel{background:#fff;border:1px solid #dce4ed;border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:0 8px 26px rgba(8,24,45,.06)}.job-picker{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:12px}.job-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:16px 2px}.job-summary h1{font-size:1.5rem;margin:.25rem 0}.job-summary p{margin:0;color:#64748b}.eyebrow{color:#0878ee;font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.status{white-space:nowrap;background:#e2e8f0;color:#475569;border-radius:999px;padding:8px 12px;font-size:.82rem;font-weight:800}.status.enabled{background:#dcfce7;color:#166534}.progress-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.progress-grid div{background:#fff;border:1px solid #dce4ed;border-radius:13px;padding:14px}.progress-grid strong{display:block;font-size:1.55rem;color:#0878ee}.progress-grid span{font-size:.78rem;color:#64748b}.tabs,.segmented{display:flex;gap:7px;margin:0 0 16px;overflow:auto}.tabs button,.segmented button{border:1px solid #cbd5e1;border-radius:999px;background:#fff;padding:10px 16px;font:inherit;font-weight:800;white-space:nowrap;cursor:pointer}.tabs button.active,.segmented button.active{border-color:#0878ee;background:#0878ee;color:#fff}h1,h2,h3,p{margin-top:0}h2{font-size:1.3rem}.muted,.hint{color:#64748b}.hint{font-size:.82rem;line-height:1.45}label{display:block;margin:14px 0 6px;font-weight:800;font-size:.88rem}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px;background:#fff;color:#122033;font:inherit}textarea{resize:vertical}.check-row{display:flex;gap:24px;flex-wrap:wrap}.check-row label{display:flex;align-items:center;gap:8px}.check-row input{width:auto}.actions,.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#122033;padding:11px 15px;text-decoration:none;font:inherit;font-weight:800;cursor:pointer}.button.primary{border-color:#0878ee;background:#0878ee;color:#fff}.button.compact{padding:8px 12px;background:#17345a;border-color:#31537d;color:#fff}.button:disabled{opacity:.55}.notice{padding:12px 14px;margin-bottom:14px;border-radius:10px;background:#e8f2ff;color:#075aa7}.notice.success{background:#dcfce7;color:#166534}.notice.error{background:#fee2e2;color:#991b1b}.reader{min-height:240px;max-width:600px;margin:14px auto 0;border-radius:14px;overflow:hidden;background:#0f172a}.divider{display:flex;align-items:center;gap:10px;margin:22px 0;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.divider:before,.divider:after{content:"";height:1px;flex:1;background:#dce4ed}.item-list{display:grid;gap:10px}.item-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;border:1px solid #dce4ed;border-radius:13px;padding:14px}.item-card strong{display:block}.item-card p,.item-card small{margin:3px 0 0;color:#64748b}.item-number{display:inline-grid;place-items:center;width:30px;height:30px;margin-right:10px;border-radius:50%;background:#e8f2ff;color:#0868ce;font-weight:900}.item-state{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.item-state span{border-radius:999px;background:#e2e8f0;padding:6px 9px;font-size:.75rem;font-weight:800}.item-state .done{background:#dcfce7;color:#166534}.item-state .warn{background:#fee2e2;color:#991b1b}.empty{text-align:center;padding:36px}.label-sheet{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.qr-label{border:2px solid #111;border-radius:8px;padding:14px;text-align:center;break-inside:avoid}.kls-barcode{display:block;width:100%;height:92px;margin:10px auto 8px}.barcode-text{margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;overflow-wrap:anywhere}.qr-label strong,.qr-label small{display:block}.label-brand{font-size:1.2rem;font-weight:900;font-style:italic}.label-brand span{font-size:.65rem;color:#0878ee}.scan-loading{padding:50px;text-align:center}.scan-panel form{max-width:600px;margin:auto}@media(max-width:680px){.scan-shell{padding:12px}.topbar{padding:12px}.job-summary{flex-direction:column}.progress-grid{grid-template-columns:repeat(2,1fr)}.job-picker{grid-template-columns:1fr}.job-picker label{margin:0}.item-card{grid-template-columns:1fr}.item-state{justify-content:flex-start}.label-sheet{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.button.primary{min-height:46px}.reader{min-height:220px}}@page{size:A4 portrait;margin:9.5mm 6mm}@media print{html,body{width:210mm;background:#fff}.topbar,.job-picker,.job-summary,.progress-grid,.tabs,.section-head,.notice{display:none!important}.scan-shell{width:198mm;max-width:none;margin:0;padding:0}.panel{width:198mm;margin:0;padding:0;box-shadow:none;border:0}.label-sheet{display:grid;grid-template-columns:99mm 99mm;grid-auto-rows:139mm;gap:0;width:198mm}.qr-label{width:99mm;height:139mm;margin:0;padding:7mm 6mm;border:0.35mm solid #111;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;break-inside:avoid;page-break-inside:avoid}.kls-barcode{width:87mm;height:32mm;margin:6mm auto 4mm}.qr-label strong{font-size:14pt}.qr-label small{font-size:9pt}.barcode-text{font-size:7pt}.label-brand{font-size:17pt}}
.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.segmented button{min-height:46px;color:#122033}.segmented button.active{border-color:#0878ee!important;background:#0878ee!important;color:#fff!important}
.camera-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:14px}.photo-scan-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-scan-button{margin:0}.camera-hint{text-align:center;margin:10px auto 0;max-width:600px}
.scanner-overlay{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:#08182d;color:#fff;padding:max(16px,env(safe-area-inset-top)) 14px max(16px,env(safe-area-inset-bottom));margin:0}.scanner-overlay-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px 16px;font-size:1.1rem}.scanner-overlay-bar button{border:1px solid #6e8caf;border-radius:10px;background:#17345a;color:#fff;padding:10px 16px;font:inherit;font-weight:800}.scanner-live-reader{flex:1;min-height:320px;overflow:hidden;border-radius:16px;background:#000}.scanner-overlay>p{text-align:center;margin:14px 0 0;color:#c5d6e8;font-weight:700}
.kls-barcode{height:118px}
@media print{.qr-label{padding:6mm 4mm}.kls-barcode{width:91mm;height:40mm}}

.kls-qr-code{display:grid;place-items:center;width:220px;height:220px;max-width:72vw;max-height:72vw;margin:10px auto;background:#fff}.kls-qr-code img,.kls-qr-code canvas{display:block;width:100%!important;height:100%!important;image-rendering:pixelated}.qr-label .kls-barcode{height:70px;margin:8px auto 6px}
@media print{.kls-qr-code{width:52mm;height:52mm;margin:3mm auto}.qr-label .kls-barcode{width:78mm;height:22mm;margin:3mm auto 2mm}}


/* v35.20.5 — clearer multi-drop labels */
.qr-label{position:relative;overflow:hidden}
.label-drop{margin:10px 0 8px;padding:10px 12px;border-radius:10px;background:#08182d;color:#fff;font-size:1.45rem;font-weight:1000;letter-spacing:.08em;text-align:center}
.qr-label h3{margin:8px 0;font-size:1rem;line-height:1.25;text-align:center}
.label-piece{display:block;margin:8px auto;padding:7px 10px;border:2px solid #08182d;border-radius:8px;text-align:center;font-size:1.05rem}
.qr-label>p{min-height:2.5em;margin:7px 0;text-align:center;font-weight:800}
@media print{.label-drop{background:#000!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.qr-label h3{font-size:14px}.label-piece{font-size:14px}}

/* v35.28 — fast real-job manifest setup */
.manifest-helper{display:grid;gap:12px;margin:18px 0;padding:16px;border:1px solid #cfe0f3;border-radius:14px;background:#f5f9ff}.manifest-helper h3{margin:3px 0 4px}.manifest-helper p{margin:0}.manifest-helper-grid{display:grid;grid-template-columns:2fr .7fr 1fr 1.5fr;gap:10px}.manifest-helper-grid label{margin:0}.manifest-upload{width:max-content;margin:0}.manifest-helper>small{display:block;color:#166534;font-weight:800}
@media(max-width:760px){.manifest-helper-grid{grid-template-columns:1fr 1fr}.manifest-helper-grid label:first-child,.manifest-helper-grid label:last-child{grid-column:1/-1}.manifest-helper .button{width:100%}}


/* v35.30 — selectable 8-up and 4-up KLS label printing */
.label-print-head{align-items:flex-end}.label-print-controls{display:grid;grid-template-columns:minmax(230px,1fr) minmax(170px,.7fr) auto auto;gap:12px;align-items:end;margin:16px 0}.label-print-controls label{margin:0}.label-print-controls .button{min-height:43px}.label-print-warning{padding:10px 12px;border-radius:9px;background:#fff7df;color:#704d00;font-size:.82rem}.label-select{display:flex;align-items:center;justify-content:center;gap:7px;margin:-5px -5px 8px;padding:7px;border-radius:6px;background:#e8f2ff;color:#075aa7;font-size:.75rem}.label-select input{width:auto}.label-print-spacer{display:none}
.label-sheet.preview-standard .qr-label{min-height:300px}
@media(max-width:760px){.label-print-controls{grid-template-columns:1fr 1fr}.label-print-controls .button{width:100%}}
@media print{
  .label-print-controls,.label-print-warning,.label-select{display:none!important}
  .qr-label:not(.print-selected){display:none!important}
  .label-print-spacer{display:block}
  body.print-label-large .label-sheet{grid-template-columns:99mm 99mm;grid-auto-rows:139mm;gap:0}
  body.print-label-large .label-print-spacer{width:99mm;height:139mm}
  body.print-label-standard .label-sheet{grid-template-columns:99mm 99mm;grid-auto-rows:67.7mm;column-gap:0;row-gap:2.4mm}
  body.print-label-standard .label-print-spacer{width:99mm;height:67.7mm}
  body.print-label-standard .qr-label{position:relative;width:99mm;height:67.7mm;display:block;padding:3mm 4mm;text-align:left}
  body.print-label-standard .label-brand{font-size:13pt;margin:0 0 1mm}
  body.print-label-standard .label-drop{position:absolute;right:4mm;top:3mm;padding:1mm 2mm;font-size:8pt}
  body.print-label-standard .qr-label h3{margin:1mm 0 1mm 39mm;max-height:12mm;overflow:hidden;font-size:9pt;text-align:left}
  body.print-label-standard .label-piece{display:block;margin-left:39mm;font-size:10pt}
  body.print-label-standard .qr-label>p{margin:1mm 0 0 39mm;min-height:0;max-height:8mm;overflow:hidden;font-size:8pt;text-align:left}
  body.print-label-standard .kls-qr-code{position:absolute;left:4mm;top:15mm;width:33mm;height:33mm;margin:0}
  body.print-label-standard .qr-label .kls-barcode{position:absolute;left:43mm;bottom:9mm;width:51mm;height:14mm;margin:0}
  body.print-label-standard .qr-label>strong{position:absolute;left:4mm;bottom:4mm;font-size:8.5pt}
  body.print-label-standard .qr-label>small:not(.barcode-text){position:absolute;right:4mm;bottom:4mm;font-size:7pt}
  body.print-label-standard .barcode-text{display:none}
}
