@charset "UTF-8";
/* SBVora v3 · Werkbank (label workbench + scan station). Owner: werkbank-label-scan. */

/* ---------- tokens ---------- */
.workbench-section{
  --wb-bg:#fff;
  --wb-panel:#fff;
  --wb-sub:#f3f7fb;
  --wb-text:#071426;
  --wb-muted:#55667a;
  --wb-line:#d3e0ea;
  --wb-line-strong:#9fb6c8;
  --wb-accent:#1868c0;
  --wb-accent-ink:#fff;
  --wb-focus:#1868c0;
  --wb-stage:#061a36;
  --wb-stage-2:#0a2547;
  --wb-stage-line:rgba(207,223,235,.1);
  --wb-ok:#0f7a4f;   --wb-ok-bg:#e7f6ef;
  --wb-warn:#8a5300; --wb-warn-bg:#fdf3e1;
  --wb-err:#b4232f;  --wb-err-bg:#fcebed;
  --wb-mono:ui-monospace,Menlo,Consolas,monospace;
  position:relative;
  background:var(--wb-bg);
  color:var(--wb-text);
  overflow:hidden;
}
html[data-theme="dark"] .workbench-section{
  --wb-bg:#0a1f33;
  --wb-panel:#0d2740;
  --wb-sub:#10304d;
  --wb-text:#e8f4fc;
  --wb-muted:#a8c2d3;
  --wb-line:#24445e;
  --wb-line-strong:#3d6584;
  --wb-accent:#2dc5f8;
  --wb-accent-ink:#061a36;
  --wb-focus:#2dc5f8;
  --wb-stage:#050f1f;
  --wb-stage-2:#0a1d36;
  --wb-ok:#5fdca6;   --wb-ok-bg:rgba(95,220,166,.12);
  --wb-warn:#f4bd56; --wb-warn-bg:rgba(244,189,86,.12);
  --wb-err:#ff8a92;  --wb-err-bg:rgba(255,138,146,.12);
}
.workbench-section::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--wb-line) 1px,transparent 1px),linear-gradient(90deg,var(--wb-line) 1px,transparent 1px);
  background-size:40px 40px;opacity:.35;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 55%);mask-image:linear-gradient(180deg,#000,transparent 55%);
}
.workbench-section .section-shell{position:relative}
.workbench-section .section-code{color:var(--wb-accent)}
html[data-theme="dark"] .workbench-section .section-code{color:#7fbbe4}
.workbench-section.wb-off .wb{display:none}

/* ---------- shell ---------- */
.wb{position:relative;border:1px solid var(--wb-line-strong);background:var(--wb-panel);box-shadow:0 30px 70px rgba(6,26,54,.08)}
html[data-theme="dark"] .wb{box-shadow:0 30px 70px rgba(0,0,0,.3)}
.wb :focus-visible{outline:2px solid var(--wb-focus);outline-offset:3px}
.wb-mono{font-family:var(--wb-mono)}
.wb [hidden]{display:none!important}

.wb-bar{display:flex;align-items:stretch;justify-content:space-between;gap:16px;border-bottom:1px solid var(--wb-line-strong);background:var(--wb-sub)}
.wb-tabs{display:flex;min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}
.wb-tabs::-webkit-scrollbar{display:none}
.wb-tab{position:relative;display:flex;align-items:center;gap:14px;flex:0 0 auto;min-height:72px;min-width:240px;padding:14px 26px 14px 18px;border:0;border-right:1px solid var(--wb-line-strong);background:transparent;color:var(--wb-muted);text-align:left;cursor:pointer;scroll-snap-align:start;transition:background .25s var(--ease),color .25s var(--ease)}
.wb-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--cyan);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.wb-tab:hover{color:var(--wb-text);background:var(--wb-panel)}
.wb-tab[aria-selected="true"]{background:var(--wb-panel);color:var(--wb-text)}
.wb-tab[aria-selected="true"]::after{transform:scaleX(1)}
.wb-tab:focus-visible{outline-offset:-4px}
.wb-tab-no{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border:1px solid currentColor;font-family:Michroma,"Arial Narrow",sans-serif;font-size:13px;line-height:1}
.wb-tab[aria-selected="true"] .wb-tab-no{background:var(--navy);border-color:var(--navy);color:#fff}
html[data-theme="dark"] .wb-tab[aria-selected="true"] .wb-tab-no{background:var(--cyan);border-color:var(--cyan);color:var(--navy)}
.wb-tab-text{display:grid;gap:3px;line-height:1.2}
.wb-tab-text b{font-size:16px;font-weight:700;letter-spacing:-.01em}
.wb-tab-text small{font-family:var(--wb-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--wb-muted)}
.wb-bar-note{display:flex;align-items:center;gap:10px;margin:0;padding:0 20px;font-family:var(--wb-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--wb-muted);white-space:nowrap}
.wb-bar-note i{width:8px;height:8px;background:var(--wb-ok);box-shadow:0 0 0 3px var(--wb-ok-bg);animation:wbPulse 2.4s ease-in-out infinite}
@keyframes wbPulse{50%{opacity:.35}}

/* ---------- shared controls ---------- */
.wb-label{display:block;margin:0 0 8px;padding:0;font-family:var(--wb-mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--wb-muted)}
.wb-field{margin:0 0 20px}
.wb-input{display:block;width:100%;min-height:46px;margin:0;padding:10px 12px;border:1px solid var(--wb-line-strong);border-radius:0;background:var(--wb-panel);color:var(--wb-text);font:500 16px/1.3 Inter,"Segoe UI",Arial,sans-serif;transition:border-color .2s,box-shadow .2s}
.wb-input:hover{border-color:var(--wb-accent)}
.wb-input:focus{outline:none;border-color:var(--wb-focus);box-shadow:0 0 0 2px var(--wb-focus)}
.wb-input--mono{font-family:var(--wb-mono);font-weight:600;letter-spacing:.06em}
.wb-input[aria-invalid="true"]{border-color:var(--wb-warn)}
.wb-input:disabled{opacity:.5;cursor:not-allowed}
.wb-hint{margin:7px 0 0;font-size:12.5px;line-height:1.45;color:var(--wb-muted)}
.wb-msg{display:none;margin:8px 0 0;font-size:13px;line-height:1.4}
.wb-msg.is-shown{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--wb-warn);background:var(--wb-warn-bg);color:var(--wb-warn)}
.wb-msg-icon,.wb-status-icon{display:grid;place-items:center;flex:0 0 auto;width:18px;height:18px;margin-top:1px;background:var(--wb-warn);color:var(--wb-panel);font:700 12px/1 var(--wb-mono)}
.wb-status .wb-status-icon{background:var(--wb-ok)}
.wb-status[data-kind="err"] .wb-status-icon{background:var(--wb-err)}
.wb-msg > span:last-child,.wb-status > span:last-child{color:var(--wb-text)}

.wb-fieldset{margin:0 0 20px;padding:0;border:0;min-width:0}
.wb-formats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.wb-format{position:relative;display:grid;justify-items:center;align-content:center;gap:8px;min-height:92px;padding:12px 6px 10px;border:1px solid var(--wb-line-strong);background:var(--wb-panel);cursor:pointer;text-align:center;transition:border-color .2s,background .2s}
.wb-format:hover{border-color:var(--wb-accent)}
.wb-format input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.wb-format-glyph{display:block;border:1.5px solid currentColor;color:var(--wb-muted);background:transparent;transition:color .2s,background .2s}
.wb-format-glyph--tall{width:22px;height:33px}
.wb-format-glyph--wide{width:33px;height:17px;margin-block:8px}
.wb-format-glyph--a4{width:24px;height:33px;background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor);background-size:1px 100%,100% 1px;background-position:center;background-repeat:no-repeat}
.wb-format-name{font-family:var(--wb-mono);font-size:11px;font-weight:600;letter-spacing:.04em;line-height:1.3;color:var(--wb-muted)}
.wb-format:has(input:checked){border-color:var(--wb-accent);background:var(--wb-sub);box-shadow:inset 0 0 0 1px var(--wb-accent)}
.wb-format:has(input:checked) .wb-format-glyph{color:var(--wb-accent)}
.wb-format:has(input:checked) .wb-format-name{color:var(--wb-text)}
.wb-format:has(input:focus-visible){outline:2px solid var(--wb-focus);outline-offset:3px}

.wb-stepper{display:flex;align-items:center;flex-wrap:wrap;gap:0}
.wb-step{display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid var(--wb-line-strong);background:var(--wb-sub);color:var(--wb-text);font:500 22px/1 var(--wb-mono);cursor:pointer;transition:background .2s,border-color .2s}
.wb-step:hover{border-color:var(--wb-accent);background:var(--wb-panel)}
.wb-step:active{background:var(--wb-line)}
.wb-input--count{width:72px;min-height:46px;margin:0 -1px;text-align:center;font-family:var(--wb-mono);font-weight:700;-moz-appearance:textfield;appearance:textfield}
.wb-input--count::-webkit-inner-spin-button,.wb-input--count::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.wb-stepper .wb-hint{margin:0 0 0 14px;font-family:var(--wb-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}

.wb-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:11px 18px;border:1px solid var(--wb-line-strong);border-radius:0;background:var(--wb-panel);color:var(--wb-text);font:600 14.5px/1.2 Inter,"Segoe UI",Arial,sans-serif;text-align:center;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .15s}
.wb-btn:hover{border-color:var(--wb-accent);color:var(--wb-accent)}
.wb-btn:active{transform:translateY(1px)}
.wb-btn--primary{border-color:var(--navy);background:var(--navy);color:#fff}
.wb-btn--primary:hover{border-color:var(--blue);background:var(--blue);color:#fff}
html[data-theme="dark"] .wb-btn--primary{border-color:var(--cyan);background:var(--cyan);color:var(--navy)}
html[data-theme="dark"] .wb-btn--primary:hover{border-color:#7ad9fb;background:#7ad9fb;color:var(--navy)}
html .wb .wb-btn:disabled,html .wb .wb-btn:disabled:hover{border-color:var(--wb-line);background:var(--wb-sub);color:var(--wb-muted);cursor:not-allowed;transform:none}
.wb-ico{flex:0 0 auto;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:square;stroke-linejoin:miter}
.wb-btn--lead .wb-ico-check{display:none}
.wb-btn--lead.is-taken{border-color:var(--wb-ok);color:var(--wb-ok)}
.wb-btn--lead.is-taken .wb-ico-plus{display:none}
.wb-btn--lead.is-taken .wb-ico-check{display:inline}

.wb-status{display:none;margin:12px 0 0;font-size:13px;line-height:1.45}
.wb-status[data-kind="ok"],.wb-status[data-kind="err"]{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border:1px solid var(--wb-ok);background:var(--wb-ok-bg);color:var(--wb-ok)}
.wb-status[data-kind="err"]{border-color:var(--wb-err);background:var(--wb-err-bg);color:var(--wb-err)}

/* ---------- Tab A: label panel ---------- */
.wb-panel--label{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr)}
.wb-panel[hidden]{display:none}
.wb-controls{padding:30px 28px;border-right:1px solid var(--wb-line-strong)}
.wb-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:26px}
.wb-btn--wide{grid-column:1/-1}
.wb-hint--print{display:flex;gap:8px;margin-top:12px}
.wb-hint--print::before{content:"i";display:grid;place-items:center;flex:0 0 auto;width:16px;height:16px;margin-top:1px;border:1px solid currentColor;font:700 10px/1 var(--wb-mono)}

.wb-stage{position:relative;display:flex;flex-direction:column;min-width:0;padding:30px 28px 18px;background-color:var(--wb-stage);background-image:radial-gradient(rgba(207,223,235,.13) 1px,transparent 1.4px),linear-gradient(160deg,var(--wb-stage-2),var(--wb-stage) 70%);background-size:16px 16px,100% 100%;color:#cfdfeb}
.wb-fan-wrap{position:relative;flex:1 0 auto;width:100%;min-height:120px}
.wb-fan{position:absolute;top:0;left:0;transform-origin:0 0}
.wb-stack{position:absolute;left:2mm;top:6mm;width:var(--lw);height:var(--lh)}
.wb-stage.is-a4 .wb-stack{top:0}
.wb-fan-item{position:absolute;inset:0;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.25),0 18px 40px rgba(0,0,0,.45);transform-origin:50% 0}
.wb-fan-item.is-back1{transform:translate(6mm,2mm) rotate(1.4deg);filter:brightness(.9)}
.wb-fan-item.is-back2{transform:translate(12mm,4mm) rotate(2.8deg);filter:brightness(.8)}
.wb-fan-item .wb-label-svg{display:block;width:100%;height:100%}
.wb-feedline{position:absolute;left:-2mm;right:-2mm;top:0;height:.6mm;background:var(--cyan);box-shadow:0 0 10px 2px rgba(45,197,248,.75);opacity:0;pointer-events:none}
.wb-printer{position:absolute;z-index:2;left:0;top:0;width:calc(var(--lw) + 4mm);height:7.5mm;display:flex;align-items:center;gap:2.4mm;padding:0 3mm;background:linear-gradient(180deg,#233a57,#0c1a2e);border:1px solid rgba(207,223,235,.22);box-shadow:0 10px 24px rgba(0,0,0,.4)}
.wb-led{width:1.6mm;height:1.6mm;background:#5fdca6;box-shadow:0 0 6px #5fdca6}
.wb-stage.is-feeding .wb-led{background:var(--cyan);box-shadow:0 0 8px var(--cyan);animation:wbBlink .18s steps(2) infinite}
@keyframes wbBlink{50%{opacity:.3}}
.wb-printer-name{font-family:var(--wb-mono);font-size:2.3mm;letter-spacing:.14em;color:#9fb6c8;white-space:nowrap;overflow:hidden}
.wb-slot{position:absolute;left:2mm;right:2mm;bottom:-1px;height:1.2mm;background:#000;border-top:1px solid rgba(255,255,255,.12)}
.wb-ruler{position:absolute;left:2mm;width:var(--lw);bottom:0;height:8mm;border-top:1px solid rgba(207,223,235,.55);background-image:repeating-linear-gradient(90deg,rgba(207,223,235,.55) 0 1px,transparent 1px 1mm),repeating-linear-gradient(90deg,rgba(207,223,235,.9) 0 1px,transparent 1px 10mm);background-size:100% 1.4mm,100% 2.8mm;background-repeat:no-repeat}
.wb-ruler::after{content:"MM";position:absolute;left:100%;margin-left:5mm;top:3.4mm;line-height:1;font-family:var(--wb-mono);font-size:2.4mm;letter-spacing:.1em;color:#7c87a6}
.wb-ruler span{position:absolute;top:3.4mm;transform:translateX(-50%);font-family:var(--wb-mono);font-size:2.4mm;line-height:1;color:#9fb6c8}
.wb-stage-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;margin-top:16px;padding-top:12px;border-top:1px solid var(--wb-stage-line);font-family:var(--wb-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#9fb6c8}
.wb-stage-foot span:first-child{color:#cfdfeb}

/* ---------- Tab B: scan station ---------- */
.wb-panel--scan{display:block}
.wb-belt{--wb-card-w:128px;--wb-card-h:96px;position:relative;height:260px;overflow:hidden;background-color:var(--wb-stage);background-image:linear-gradient(180deg,var(--wb-stage-2),var(--wb-stage) 80%);border-bottom:1px solid var(--wb-line-strong);color:#cfdfeb;transition:box-shadow .3s}
.wb-belt-surface{position:absolute;left:0;bottom:22px;width:calc(100% + 80px);height:40px;background-color:#13243a;background-image:repeating-linear-gradient(90deg,rgba(207,223,235,.18) 0 2px,transparent 2px 40px),linear-gradient(180deg,rgba(255,255,255,.08),transparent 40%,rgba(0,0,0,.35));border-top:1px solid rgba(207,223,235,.3);border-bottom:1px solid rgba(207,223,235,.15);will-change:transform}
.wb-belt::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background:repeating-linear-gradient(90deg,#0b1626 0 30px,#16263c 30px 32px);border-top:1px solid rgba(0,0,0,.6)}
.wb-belt-cards{position:absolute;inset:0;z-index:2}
.wb-window{position:absolute;z-index:3;left:50%;top:60px;bottom:34px;width:calc(var(--wb-card-w) + 80px);transform:translateX(-50%);pointer-events:none;background:linear-gradient(90deg,transparent,rgba(45,197,248,.06) 30%,rgba(45,197,248,.06) 70%,transparent)}
.wb-window i{position:absolute;width:16px;height:16px;border:0 solid var(--cyan);transition:border-color .2s}
.wb-window i:nth-child(1){left:0;top:0;border-width:2px 0 0 2px}
.wb-window i:nth-child(2){right:0;top:0;border-width:2px 2px 0 0}
.wb-window i:nth-child(3){left:0;bottom:0;border-width:0 0 2px 2px}
.wb-window i:nth-child(4){right:0;bottom:0;border-width:0 2px 2px 0}
.wb-beam{position:absolute;left:50%;top:-8px;bottom:-8px;width:2px;margin-left:-1px;background:linear-gradient(180deg,transparent,var(--cyan) 12%,var(--cyan) 88%,transparent);box-shadow:0 0 12px 2px rgba(45,197,248,.55);opacity:.85;animation:wbBeam 1.6s ease-in-out infinite}
@keyframes wbBeam{50%{opacity:.45}}
.wb-belt.flash-ok .wb-window i{border-color:#5fdca6}
.wb-belt.flash-err .wb-window i{border-color:#ff8a92}
.wb-belt.flash-ok .wb-beam{background:#5fdca6;box-shadow:0 0 16px 4px rgba(95,220,166,.6)}
.wb-belt.flash-err .wb-beam{background:#ff8a92;box-shadow:0 0 16px 4px rgba(255,138,146,.6)}
.wb-belt.flash-ok{box-shadow:inset 0 0 0 2px #5fdca6}
.wb-belt.flash-err{box-shadow:inset 0 0 0 2px #ff8a92}
.wb-belt-hud{position:absolute;z-index:4;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:center;gap:12px;height:34px;padding:0 16px;border-bottom:1px solid var(--wb-stage-line);font-family:var(--wb-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#9fb6c8}
.wb-hud-scan{padding:2px 8px;border:1px solid rgba(45,197,248,.6);color:var(--cyan)}
#wbClock{font-variant-numeric:tabular-nums;color:#cfdfeb;min-width:5ch;text-align:right}
.wb-belt-msg{position:absolute;z-index:5;inset:34px 0 22px;display:none;place-items:center;pointer-events:none}
.wb-belt-msg.is-shown{display:grid;background:rgba(5,15,31,.55)}
.wb-belt-msg span{padding:10px 16px;border:1px solid rgba(207,223,235,.45);background:#061a36;font-family:var(--wb-mono);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.wb-belt-msg.is-quiet{inset:auto 16px auto auto;top:46px;display:block;background:none}
.wb-belt.is-closed .wb-belt-msg span{border-color:#5fdca6;color:#5fdca6}

.wb-card{position:absolute;left:0;bottom:46px;width:var(--wb-card-w);height:var(--wb-card-h);will-change:transform}
.wb-card-box{position:absolute;inset:0;background:linear-gradient(180deg,#c7a676,#b08a57);border:1px solid #8a6a3e;box-shadow:inset 0 -6px 0 rgba(0,0,0,.08),0 8px 14px rgba(0,0,0,.35);transition:transform .5s var(--ease),opacity .5s var(--ease),filter .5s}
.wb-card-tape{position:absolute;left:0;right:0;top:0;height:12%;background:rgba(240,226,196,.55);border-bottom:1px solid rgba(138,106,62,.4)}
.wb-card-label{position:absolute;left:9%;right:9%;top:22%;bottom:12%;display:flex;flex-direction:column;justify-content:space-between;padding:4px 5px 3px;background:#fff;color:#000;box-shadow:0 1px 1px rgba(0,0,0,.25)}
.wb-card-tour{font:700 8px/1 var(--wb-mono);letter-spacing:.06em;color:#000}
.wb-card-bars{display:block;width:100%;height:42%;fill:#000}
.wb-card-code{font:600 7.5px/1 var(--wb-mono);text-align:center;color:#000;white-space:nowrap;overflow:hidden}
.wb-card.is-in-zone .wb-card-label{outline:2px solid var(--cyan);outline-offset:2px}
.wb-card-stamp{position:absolute;right:-8px;top:-10px;display:none;place-items:center;width:28px;height:28px;border:2px solid currentColor;background:#fff;font:700 16px/1 var(--wb-mono)}
.wb-card.is-ok .wb-card-stamp,.wb-card.is-err .wb-card-stamp,.wb-card.is-warn .wb-card-stamp{display:grid}
.wb-card.is-ok .wb-card-stamp{color:#0f7a4f}
.wb-card.is-ok .wb-card-stamp::before{content:"✓"}
.wb-card.is-err .wb-card-stamp{color:#b4232f}
.wb-card.is-err .wb-card-stamp::before{content:"✕"}
.wb-card.is-warn .wb-card-stamp{color:#8a5300}
.wb-card.is-warn .wb-card-stamp::before{content:"!"}
.wb-card.is-diverted .wb-card-box{transform:translateY(58px) rotate(-6deg);opacity:.45;filter:grayscale(.6)}
.wb-belt.is-closed .wb-card{opacity:.4}

.wb-inwindow{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0;padding:12px 24px;border-bottom:1px solid var(--wb-line);background:var(--wb-sub);font-family:var(--wb-mono);font-size:12px}
.wb-inwindow-label{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--wb-muted)}
.wb-inwindow b{font-weight:700;letter-spacing:.04em;color:var(--wb-text)}
.wb-inwindow-state{padding:1px 6px;border:1px solid var(--wb-line-strong);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--wb-muted)}

.wb-scan-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px)}
.wb-scan-main{min-width:0;padding:26px 28px 28px;border-right:1px solid var(--wb-line-strong)}

.wb-readout{--fb:var(--wb-accent);--fb-bg:var(--wb-sub);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;min-height:88px;padding:14px 16px;border:1px solid var(--fb);border-left-width:4px;background:var(--fb-bg);transition:background .25s,border-color .25s}
.wb-readout[data-state="ok"]{--fb:var(--wb-ok);--fb-bg:var(--wb-ok-bg)}
.wb-readout[data-state="warn"]{--fb:var(--wb-warn);--fb-bg:var(--wb-warn-bg)}
.wb-readout[data-state="err"]{--fb:var(--wb-err);--fb-bg:var(--wb-err-bg)}
.wb-readout-icon{display:grid;place-items:center;width:44px;height:44px;background:var(--fb);color:var(--wb-panel);font:700 22px/1 var(--wb-mono)}
.wb-readout-text{display:grid;gap:3px;min-width:0}
.wb-readout-text b{font-size:17px;line-height:1.25;color:var(--fb)}
.wb-readout-text span{font-size:13.5px;line-height:1.45;color:var(--wb-text);overflow-wrap:anywhere}
.wb-readout-count{display:flex;align-items:baseline;font-family:Michroma,"Arial Narrow",sans-serif;color:var(--wb-text);font-variant-numeric:tabular-nums}
.wb-readout-count b{font-size:30px;font-weight:600;line-height:1}
.wb-readout-count small{font-size:14px;color:var(--wb-muted)}

.wb-progress{display:grid;grid-template-columns:repeat(var(--n,12),minmax(0,1fr));gap:3px;margin:10px 0 0}
.wb-progress i{height:8px;background:var(--wb-line);transition:background .3s}
.wb-progress i.is-ok{background:var(--wb-ok)}
.wb-progress i.is-ex{background:repeating-linear-gradient(135deg,var(--wb-warn) 0 3px,transparent 3px 6px);box-shadow:inset 0 0 0 1px var(--wb-warn)}

.wb-scan-actions{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.wb-btn--scan{min-width:180px;min-height:56px;font-size:16px;letter-spacing:.02em}
.wb-btn--scan .wb-ico{width:24px;height:24px}
.wb-scan-actions .wb-btn:not(.wb-btn--scan){min-height:56px}
.wb-field--wedge{margin-bottom:18px}

.wb-toggles{display:flex;flex-wrap:wrap;align-items:center;gap:8px 8px;margin:0 0 20px}
.wb-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--wb-line-strong);background:var(--wb-panel);color:var(--wb-text);font:600 13.5px/1.2 Inter,"Segoe UI",Arial,sans-serif;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.wb-toggle:hover{border-color:var(--wb-accent)}
.wb-toggle[aria-pressed="true"]{border-color:var(--wb-accent);background:var(--wb-sub);box-shadow:inset 0 -3px 0 var(--wb-accent)}
.wb-toggle[aria-pressed="false"] .wb-ico-on,.wb-toggle[aria-pressed="true"] .wb-ico-off{display:none}
.wb-toggle[hidden]{display:none}
.wb-check{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:4px 4px 4px 0;font-size:13.5px;line-height:1.35;cursor:pointer}
.wb-check input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.wb-check span::before{content:"";display:inline-block;vertical-align:-5px;width:20px;height:20px;margin-right:10px;border:1px solid var(--wb-line-strong);background:var(--wb-panel) no-repeat center/14px 14px}
.wb-check input:checked + span::before{border-color:var(--wb-accent);background-color:var(--wb-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='%23fff' stroke-width='3'/%3E%3C/svg%3E")}
html[data-theme="dark"] .wb-check input:checked + span::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='%23061a36' stroke-width='3'/%3E%3C/svg%3E")}
.wb-check input:focus-visible + span{outline:2px solid var(--wb-focus);outline-offset:4px}

.wb-close-row{display:flex;flex-wrap:wrap;gap:8px}
#wbCloseHint{min-height:1.45em}

.wb-summary{position:relative;margin:0 0 20px;padding:20px 20px 18px;border:1px solid var(--wb-ok);background:var(--wb-panel)}
.wb-summary[hidden]{display:none}
.wb-summary-stamp{position:absolute;right:16px;top:14px;padding:4px 8px;border:2px solid var(--wb-ok);color:var(--wb-ok);font:700 11px/1 var(--wb-mono);letter-spacing:.12em;transform:rotate(-4deg)}
.wb-summary-title{margin:0 0 14px;padding-right:130px;font-family:Michroma,"Arial Narrow",sans-serif;font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--wb-text)}
.wb-summary-title:focus{outline:none}
.wb-summary-title:focus-visible{outline:2px solid var(--wb-focus);outline-offset:4px}
.wb-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1px;margin:0;border:1px solid var(--wb-line);background:var(--wb-line)}
.wb-fact{margin:0;padding:10px 12px;background:var(--wb-sub)}
.wb-fact dt{font-family:var(--wb-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--wb-muted)}
.wb-fact dd{margin:4px 0 0;font-family:var(--wb-mono);font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--wb-text)}
.wb-fact.is-warn dd{color:var(--wb-warn)}
.wb-fact.is-best dd{color:var(--wb-ok)}
.wb-summary-sub{margin:16px 0 6px;font-family:var(--wb-mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--wb-muted)}
.wb-log{margin:0;padding:0;list-style:none;font-family:var(--wb-mono);font-size:12px;line-height:1.5}
.wb-log li{padding:4px 0;border-bottom:1px dashed var(--wb-line);overflow-wrap:anywhere}
.wb-log li:last-child{border-bottom:0}
.wb-log-tour,.wb-log-unknown{color:var(--wb-err)}
.wb-log-dup,.wb-log-none{color:var(--wb-warn)}
.wb-log-empty{margin:6px 0 0;font-size:13px;color:var(--wb-muted)}

.wb-list{min-width:0;padding:22px 22px 26px;background:var(--wb-sub)}
.wb-table{width:100%;border-collapse:collapse;font-size:13px}
.wb-table caption{caption-side:top;padding:0 0 12px;text-align:left;font-family:var(--wb-mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--wb-muted)}
.wb-table caption .wb-mono{float:right;letter-spacing:.08em;color:var(--wb-text)}
.wb-table th,.wb-table td{padding:4px 8px;border-bottom:1px solid var(--wb-line);text-align:left;vertical-align:middle}
.wb-table thead th{padding-block:8px;border-bottom:1px solid var(--wb-line-strong);font-family:var(--wb-mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--wb-muted)}
.wb-cell-no{width:3.2em;font-family:var(--wb-mono);font-weight:600;color:var(--wb-muted)}
.wb-cell-code{font-family:var(--wb-mono);font-weight:600;letter-spacing:.02em;white-space:nowrap;color:var(--wb-text)}
.wb-cell-status{width:46%}
.wb-row{height:52px;transition:background .4s}
.wb-row[data-state="ok"]{background:var(--wb-ok-bg)}
.wb-row[data-state="ok"] .wb-cell-no{color:var(--wb-ok)}
.wb-row[data-state="ex"] .wb-cell-no{color:var(--wb-warn)}
.wb-row.is-flash{animation:wbRowFlash .9s var(--ease)}
@keyframes wbRowFlash{0%{background:rgba(45,197,248,.35)}}
.wb-select{width:100%;min-height:44px;padding:6px 30px 6px 10px;border:1px solid var(--wb-line-strong);border-radius:0;background:var(--wb-panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237c87a6' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 10px center/11px 8px;color:var(--wb-text);font:500 13px/1.2 Inter,"Segoe UI",Arial,sans-serif;-webkit-appearance:none;appearance:none;cursor:pointer}
.wb-select:hover{border-color:var(--wb-accent)}
.wb-select:focus-visible{outline:2px solid var(--wb-focus);outline-offset:1px}
.wb-row[data-state="ex"] .wb-select{border-color:var(--wb-warn);color:var(--wb-warn);font-weight:600}
.wb-select option{background:var(--wb-panel);color:var(--wb-text)}
.wb-tag{display:inline-flex;align-items:center;gap:7px;min-height:28px;font-size:12.5px;font-weight:600;color:var(--wb-muted)}
.wb-tag-icon{display:grid;place-items:center;width:20px;height:20px;border:1px solid currentColor;font:700 11px/1 var(--wb-mono)}
.wb-tag--ok{color:var(--wb-ok)}
.wb-tag--ok span:last-child{font-family:var(--wb-mono);font-size:12px}
.wb-tag--ex{color:var(--wb-warn)}

.wb-fineprint{margin-top:22px;color:var(--wb-muted)}

/* ---------- responsive ---------- */
@media(max-width:1120px){
  .wb-bar-note{display:none}
  .wb-scan-grid{grid-template-columns:minmax(0,1fr) minmax(280px,360px)}
}
@media(max-width:860px){
  .wb-panel--label{grid-template-columns:1fr}
  .wb-controls{border-right:0;border-bottom:1px solid var(--wb-line-strong)}
  .wb-controls{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}
  .wb-controls>*{grid-column:1/-1}
  .wb-controls>.wb-field:nth-child(1){grid-column:1}
  .wb-controls>.wb-field:nth-child(2){grid-column:2}
  .wb-scan-grid{grid-template-columns:1fr}
  .wb-scan-main{border-right:0;border-bottom:1px solid var(--wb-line-strong)}
}
@media(max-width:560px){
  .wb-tab{flex:1 0 50%;min-width:150px;min-height:64px;gap:10px;padding:10px 12px}
  .wb-tab-no{width:28px;height:28px;font-size:11px}
  .wb-tab-text b{font-size:14px}
  .wb-tab-text small{font-size:9px;letter-spacing:.1em}
  .wb-controls{display:block;padding:22px 16px}
  .wb-formats{gap:6px}
  .wb-format{min-height:86px;padding-inline:4px}
  .wb-format-name{font-size:10.5px}
  .wb-actions{grid-template-columns:1fr}
  .wb-stage{padding:20px 14px 14px}
  .wb-belt{height:224px}
  .wb-window{top:52px;bottom:32px}
  .wb-belt-hud{padding:0 10px;font-size:9.5px;letter-spacing:.1em}
  .wb-card{bottom:44px}
  .wb-inwindow{padding:10px 16px}
  .wb-scan-main{padding:20px 16px 22px}
  .wb-readout{grid-template-columns:auto minmax(0,1fr);gap:12px;padding:12px}
  .wb-readout-count{grid-column:1/-1;justify-self:end;margin-top:-6px}
  .wb-readout-count b{font-size:24px}
  .wb-scan-actions .wb-btn{flex:1 1 100%}
  .wb-list{padding:18px 12px 20px}
  .wb-table th,.wb-table td{padding:4px 5px}
  .wb-cell-code{font-size:12px}
  .wb-summary{padding:16px 14px}
  .wb-summary-stamp{position:static;display:inline-block;margin:0 0 10px}
  .wb-summary-title{padding-right:0}
}

/* ---------- reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  .wb-bar-note i,.wb-beam,.wb-stage.is-feeding .wb-led{animation:none}
  .wb-tab::after,.wb-card-box,.wb-row,.wb-btn,.wb-progress i{transition:none}
  .wb-card.is-diverted .wb-card-box{transform:translateY(58px)}
}

/* ---------- SBV.print job (labels at true size) ---------- */
@media print{
  html.sbv-print-only .sbv-print-root .wb-print-label{display:block;width:100mm;overflow:hidden;break-after:page;page-break-after:always;break-inside:avoid}
  html.sbv-print-only .sbv-print-root .wb-print-label--100x150{height:150mm}
  html.sbv-print-only .sbv-print-root .wb-print-label--100x50{height:50mm}
  html.sbv-print-only .sbv-print-root .wb-print-sheet{display:block;width:190mm;height:277mm;overflow:hidden;break-after:page;page-break-after:always;break-inside:avoid}
  html.sbv-print-only .sbv-print-root .wb-print-label:last-child,
  html.sbv-print-only .sbv-print-root .wb-print-sheet:last-child{break-after:auto;page-break-after:auto}
  html.sbv-print-only .sbv-print-root .wb-label-svg{display:block;width:100%;height:100%}

  /* normal page print: keep the label preview, drop the interactive parts */
  html:not(.sbv-print-only) .workbench-section::before,
  html:not(.sbv-print-only) .wb-bar-note,
  html:not(.sbv-print-only) .wb-actions,
  html:not(.sbv-print-only) .wb-hint--print,
  html:not(.sbv-print-only) .wb-status,
  html:not(.sbv-print-only) .wb-panel--scan .wb-belt,
  html:not(.sbv-print-only) .wb-scan-actions,
  html:not(.sbv-print-only) .wb-field--wedge,
  html:not(.sbv-print-only) .wb-toggles,
  html:not(.sbv-print-only) .wb-close-row{display:none!important}
  html:not(.sbv-print-only) .wb{box-shadow:none;break-inside:auto}
  html:not(.sbv-print-only) .wb-panel--label{grid-template-columns:1fr}
  html:not(.sbv-print-only) .wb-stage{break-inside:avoid}
}
