/* Scanner and standalone labels share the approved form/receipt design.
   These styles own both workspaces; inventory editors keep their own rules. */
.scan-label-workspace {
 --workspace-bg:#fff; --workspace-panel:#fff; --workspace-field:#fff;
 --workspace-muted:#586b7a; --workspace-line:#cdd9e2; --workspace-action:#007eb9;
 --workspace-soft:#f1f6fa; --workspace-warning:#a85e00; --workspace-warning-bg:#fff7e4;
 width:min(760px,calc(100vw - 32px)); max-width:760px; max-height:calc(100dvh - 32px);
 background:var(--workspace-bg); color:var(--ink); border-radius:14px;
 display:flex; flex-direction:column; overflow:hidden;
}
[data-theme="agilent-web-dark"] .scan-label-workspace {
 --workspace-bg:#0b1e2a; --workspace-panel:#102331; --workspace-field:#112433;
 --workspace-muted:#abc1d5; --workspace-line:#355266; --workspace-action:#0089ef;
 --workspace-soft:#132b3c; --workspace-warning:#ffd15c; --workspace-warning-bg:#352e1e;
}
.modal-backdrop:has(> .scan-label-workspace) { padding:16px max(16px, var(--landscape-gutter)); }
.scan-label-workspace .modal-head {
 flex:none; display:flex; align-items:center; gap:12px; min-height:64px;
 padding:12px 16px; background:var(--primary-dark); color:#fff; border:0;
}
[data-theme="agilent-web-dark"] .scan-label-workspace .modal-head { background:#0b1e2a; border-color:var(--workspace-line); }
#splCreatorModal .modal-head { background:var(--primary-dark); }
[data-theme="agilent-web-dark"] #splCreatorModal .modal-head { background:#071722; }
.scan-label-heading, .scan-label-workspace .document-heading { flex:1; text-align:left; min-width:0; }
.scan-label-workspace .modal-head h2 { margin:0; color:inherit; font-size:var(--ui-title-size); font-weight:var(--ui-title-weight); letter-spacing:-.025em; line-height:1.25; overflow-wrap:anywhere; }
#scanIntakeContext { display:block; margin-top:3px; font-size:12px; line-height:1.3; color:#d8eff8; }
.modal-backdrop .scan-label-workspace .modal-head button { flex:none; min-height:44px; padding:9px 12px; border:1px solid #b6d3df; border-radius:7px; color:#fff; background:#006593; box-shadow:none; font-size:14px; white-space:nowrap; }
.modal-backdrop .scan-label-workspace .modal-head button[data-icon-close] { width:var(--ui-close-size); min-width:var(--ui-close-size); height:var(--ui-close-size); padding:0; border:0; border-radius:var(--ui-control-radius); background:transparent; color:#fff; font-size:27px; line-height:1; }
[data-theme="agilent-web-dark"] .modal-backdrop .scan-label-workspace .modal-head button { background:#102b40; color:#e5f3ff; }
[data-theme="agilent-web-dark"] .modal-backdrop .scan-label-workspace .modal-head button[data-icon-close] { background:transparent; color:#e5f3ff; }
.scan-label-workspace .modal-body { display:flex; flex-direction:column; gap:0; min-height:0; overflow:auto; padding:20px 16px; background:var(--workspace-bg); overscroll-behavior:contain; }
.scan-label-workspace :is(input,select) { color:var(--ink); background-color:var(--workspace-field); border:1px solid var(--workspace-line); border-radius:7px; box-shadow:none; }
.scan-label-workspace input::placeholder { color:var(--workspace-muted); opacity:1; }
.scan-label-workspace input:focus { border-color:#2a9fd2; outline:2px solid color-mix(in srgb,#2a9fd2 24%,transparent); outline-offset:1px; }
.scan-label-workspace input[aria-invalid="true"] { border-color:var(--danger); }
.workspace-icon { width:22px; height:22px; flex:none; display:block; }
.workspace-guidance, .spl-field-guidance { color:var(--workspace-muted); margin:6px 0 0; font-size:13px; font-weight:400; line-height:1.45; text-transform:none; letter-spacing:0; }
.workspace-required { color:#ef424b; }
.spl-scan-grid { display:grid; grid-template-columns:104px minmax(0,1fr); gap:22px 18px; align-items:start; }
.spl-part-entry, .spl-service-order-entry { grid-column:1 / -1; }
.spl-next-quantity { grid-column:1; }
.spl-scan-grid .field { min-width:0; gap:7px; color:var(--ink-2); font-size:14px; font-weight:650; letter-spacing:0; text-transform:none; }
.spl-scan-grid .spl-next-quantity { font-size:13px; white-space:nowrap; }
.spl-input-action, .scan-entry-row { display:grid; grid-template-columns:minmax(0,1fr) 50px 44px; gap:8px; }
.spl-input-wrap, .scan-input-wrap { position:relative; min-width:0; }
.spl-input-icon, .scan-input-icon { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:#199ad1; width:23px; height:23px; pointer-events:none; }
.spl-input-action input, .scan-entry-row input#scanPartInput { width:100%; min-width:0; min-height:44px; padding:10px 10px 10px 39px; font-weight:500; line-height:1.3; font-size:16px; letter-spacing:0; }
.spl-service-order-entry input { width:100%; min-width:0; min-height:48px; padding:11px 13px; font-size:17px; font-weight:500; letter-spacing:0; }
.spl-input-action button, .scan-entry-row button { min-width:0; min-height:44px; padding:0 8px; border-radius:7px; border-color:var(--workspace-action); background:var(--workspace-action); color:#fff; font-size:15px; font-weight:750; }
@media (hover:hover) and (pointer:fine) { .spl-input-action button:hover,.scan-entry-row button:hover { background:color-mix(in srgb,var(--workspace-action) 85%,#000); } }
.spl-scan-condition { grid-column:2; min-width:0; border:0; padding:0 0 0 14px; margin:0; border-left:1px solid var(--workspace-line); }
.spl-scan-condition legend { padding:0; margin:0 0 8px; color:var(--ink-2); font-size:14px; line-height:1.4; font-weight:650; }
.scan-entry-label, .scan-control-label { padding:0; margin:0 0 8px; color:var(--ink-2); font-size:12px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.scan-entry-label { position:relative; }
.scan-entry-tools { position:absolute; right:0; top:-5px; z-index:2; }
.scan-entry-tools summary { display:grid; place-items:center; width:32px; height:28px; list-style:none; border-radius:5px; color:var(--workspace-muted); cursor:pointer; }
.scan-entry-tools summary::-webkit-details-marker { display:none; }
.scan-entry-tools summary .workspace-icon { width:18px; height:18px; }
.scan-entry-tools summary:focus-visible { outline:2px solid var(--workspace-action); }
.scan-tools-menu { position:absolute; right:0; top:32px; width:170px; padding:6px; border:1px solid var(--workspace-line); border-radius:8px; background:var(--workspace-panel); box-shadow:0 8px 22px #102a4333; }
.scan-tools-menu button { display:block; width:100%; min-height:40px; padding:8px 10px; border:0; border-radius:5px; background:transparent; color:var(--ink); text-align:left; font-size:14px; font-weight:500; }
@media (hover:hover) and (pointer:fine) { .scan-tools-menu button:hover { background:var(--workspace-soft); } }
.spl-condition-options, .scan-disposition-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.spl-condition-choice, .scan-disposition-choice { position:relative; display:flex; justify-content:center; align-items:center; min-width:0; min-height:44px; padding:8px 3px; margin:0; border:1px solid var(--workspace-line); border-radius:7px; background:var(--workspace-soft); color:var(--ink); font-size:14px; font-weight:650; letter-spacing:0; text-transform:none; cursor:pointer; box-shadow:none; }
.spl-condition-choice { font-size:13px; }
.spl-condition-choice input { position:absolute; opacity:0; width:1px; height:1px; }
.spl-condition-choice:has(input:checked), .scan-disposition-choice.selected { color:#fff; background:var(--workspace-action); border-color:#35b9ee; box-shadow:0 0 0 1px #35b9ee; }
.spl-condition-choice:has(:focus-visible), .scan-disposition-choice:focus-visible { outline:2px solid #35b9ee; outline-offset:2px; }
.spl-batch-head, .scan-recent-heading { margin-top:22px; padding-top:20px; border-top:1px solid var(--workspace-line); }
.spl-batch-head { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.spl-session-summary, .scan-recent-heading { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.spl-session-summary { flex:1 0 100%; min-width:0; }
.scan-label-workspace .eyebrow, .scan-recent-heading h4 { margin:0; color:var(--workspace-muted); font-size:12px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.spl-batch-head h3, .scan-recent-heading h3 { margin:0; font-size:18px; line-height:1.3; text-align:right; }
.spl-batch-head h3 { font-size:15px; line-height:1.2; }
.spl-batch-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.spl-batch-actions:not(:has(> :not([hidden]))) { display:none; }
.spl-batch-actions button, .spl-ai-fill { min-height:38px; padding:7px 9px; border:1px solid #6ab9e6; border-radius:7px; background:var(--workspace-soft); color:var(--workspace-action); font-size:12px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; gap:5px; }
[data-theme="agilent-web-dark"] .spl-batch-actions button, [data-theme="agilent-web-dark"] .spl-ai-fill { color:#8bd5ff; }
.spl-ai-fill .workspace-icon, .spl-batch-actions .workspace-icon { width:17px; height:17px; }
.spl-missing-count { display:inline-flex; align-items:center; gap:5px; padding:7px 9px; border:1px solid color-mix(in srgb,var(--workspace-warning) 32%,transparent); border-radius:7px; background:var(--workspace-warning-bg); color:var(--workspace-warning); font-size:12px; }
.spl-batch-list, .scan-recent-list { display:grid; gap:9px; margin-top:14px; border:0; border-radius:0; overflow:visible; }
.spl-batch-row, .scan-recent-item { display:grid; grid-template-columns:20px minmax(0,1fr) 104px 88px auto; gap:10px; align-items:center; padding:12px; border:1px solid var(--workspace-line); border-radius:8px; background:var(--workspace-panel); font-size:13px; }
.workspace-row-number { color:var(--workspace-muted); text-align:center; font-size:12px; }
.workspace-part-identity { min-width:0; display:grid; gap:3px; }
.spl-batch-part, .scan-recent-item .pn { color:var(--ink); font-size:15px; font-weight:750; overflow-wrap:anywhere; }
.workspace-part-description { color:var(--workspace-muted); line-height:1.3; overflow-wrap:anywhere; }
.workspace-missing-description { display:flex; align-items:center; gap:4px; color:var(--workspace-warning); }
.workspace-missing-description .workspace-icon { width:16px; height:16px; }
.workspace-row-meta { min-width:0; padding-left:10px; border-left:1px solid var(--workspace-line); display:grid; gap:4px; overflow-wrap:anywhere; }
.workspace-row-meta > span:first-child { color:var(--workspace-muted); font-size:11px; }
.workspace-row-actions { display:flex; align-items:center; gap:4px; }
.workspace-icon-button { display:grid; place-items:center; flex:none; width:38px; min-width:38px; height:40px; padding:7px; border:0; border-radius:6px; background:transparent; color:#178bd0; }
@media (hover:hover) and (pointer:fine) { .workspace-icon-button:hover { background:var(--workspace-soft); color:#178bd0; } }
.workspace-remove { color:#ed424e; }
@media (hover:hover) and (pointer:fine) { .workspace-remove:hover { color:#ed424e; background:var(--danger-soft); } }
.workspace-condition { --condition-dot:#1dba7c; --condition-bg:#e0f4e9; --condition-ink:#185d45; display:inline-flex; align-items:center; justify-content:center; gap:6px; width:max-content; max-width:100%; min-height:30px; min-width:0; padding:4px 9px; border:1px solid transparent; border-radius:14px; background:var(--condition-bg); color:var(--condition-ink); font-size:12px; font-weight:600; box-shadow:none; }
.workspace-condition::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--condition-dot); flex:none; }
.workspace-condition[data-condition="Open Return"] { --condition-dot:#1499ef; --condition-bg:#e2f0fc; --condition-ink:#185575; }
.workspace-condition[data-condition="DEFOA"] { --condition-dot:#8596a5; --condition-bg:#edf1f5; --condition-ink:#455463; }
.workspace-condition[data-condition="Bad"] { --condition-dot:#ec5365; --condition-bg:#ffe7eb; --condition-ink:#8e293b; }
[data-theme="agilent-web-dark"] .workspace-condition { background:color-mix(in srgb,var(--condition-dot) 18%,var(--workspace-panel)); color:#e6f4fc; border-color:color-mix(in srgb,var(--condition-dot) 30%,transparent); }
@media (hover:hover) and (pointer:fine) { .workspace-condition:hover { filter:brightness(.95); background:var(--condition-bg); color:var(--condition-ink); } }
@media (hover:hover) and (pointer:fine) { [data-theme="agilent-web-dark"] .workspace-condition:hover { color:#fff; background:var(--workspace-soft); } }
.spl-row-editor { grid-column:2 / -1; display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:12px; padding-top:12px; border-top:1px solid var(--workspace-line); }
.spl-row-editor label { min-width:0; display:grid; gap:5px; font-size:12px; color:var(--workspace-muted); }
.spl-row-input { width:100%; min-width:0; min-height:42px; padding:8px 10px; font-size:14px; }
.spl-editor-quantity { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.spl-qty-stepper { display:flex; align-items:center; gap:8px; }
.spl-qty-stepper button { min-width:38px; min-height:38px; padding:4px; background:var(--workspace-soft); color:var(--ink); border-color:var(--workspace-line); }
.workspace-empty { display:grid; justify-items:center; gap:8px; padding:16px; border:1px solid var(--workspace-line); border-radius:9px; text-align:center; background:var(--workspace-panel); }
.workspace-empty-art { width:142px; height:91px; color:#3295c6; }
[data-theme="agilent-web-dark"] .workspace-empty-art { color:#6cc2ef; }
.workspace-empty > strong { font-size:19px; line-height:1.25; }
.workspace-empty > p { margin:0; color:var(--workspace-muted); font-size:13px; line-height:1.4; }
.workspace-empty-hints { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; margin-top:10px; }
.workspace-empty-hints > div { display:grid; justify-items:center; gap:8px; padding:0 10px; border-left:1px solid var(--workspace-line); color:var(--workspace-muted); font-size:12px; line-height:1.4; }
.workspace-empty-hints > div:first-child { border:0; }
.workspace-hint-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--workspace-soft); color:#249bd9; }
.scan-label-workspace .spl-batch-footer { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; margin:0; }
.spl-batch-footer button, .scan-label-workspace .modal-foot #scanDoneBtn { width:100%; min-height:50px; padding:10px 16px; border:0; border-radius:7px; background:var(--workspace-action); color:#fff; font-size:17px; font-weight:750; }
.spl-batch-footer button:disabled { opacity:.4; cursor:default; }
.spl-batch-footer > span { text-align:center; font-size:11px; }
.scan-console { display:grid; gap:24px; border:0; padding:0; background:transparent; box-shadow:none; }
/* Keep live part feedback available to assistive technology without a second
   visual summary competing with the session receipt. */
.scan-preview { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.scan-utility-deck { display:grid; grid-template-columns:104px minmax(0,1fr); gap:24px 18px; }
.scan-location-control { padding-left:14px; border-left:1px solid var(--workspace-line); }
.scan-qty-stepper { display:flex; height:44px; border:1px solid var(--workspace-line); border-radius:7px; overflow:hidden; }
.scan-qty-stepper button { width:36px; min-width:36px; padding:0; border:0; border-radius:0; background:var(--workspace-soft); color:var(--ink); font-size:22px; }
.scan-qty-stepper input { flex:1 1 0; width:0; min-width:0; padding:0; border:0; border-radius:0; text-align:center; font-size:16px; }
.scan-location-input { width:100%; min-width:0; min-height:44px; padding:9px 28px 9px 10px; font-size:16px; text-overflow:ellipsis; }
.scan-control-disposition { grid-column:1 / -1; }
.scan-recent-item { grid-template-columns:20px minmax(0,1fr) 90px auto; }
.scan-recent-item .workspace-part-description { font-size:13px; }
.scan-recent-item .badge { width:max-content; max-width:100%; font-size:10px; }
.scan-recent-location, .scan-recent-qty { color:var(--workspace-muted); font-size:11px; }
.scan-label-workspace .modal-foot { background:var(--workspace-bg); border-top:1px solid var(--workspace-line); flex:none; padding:12px 16px; }
.scan-label-workspace .modal-foot:has(#scanFinishLaterBtn:not([hidden])) { display:grid; grid-template-columns:auto minmax(0,1fr); }
.scan-label-workspace .modal-foot .spacer { display:none; }
.scan-label-workspace .modal-foot #scanFinishLaterBtn { min-height:44px; flex:none; font-size:12px; }
.scan-label-workspace [hidden] { display:none !important; }
#scanCameraBtn, .workspace-camera-launch { display:flex; align-items:center; justify-content:center; gap:7px; background:var(--workspace-soft); color:var(--workspace-action); border:1px solid var(--workspace-action); }
.spl-input-action .workspace-camera-launch { background:var(--workspace-action); color:#fff; }
.spl-next-quantity .scan-qty-stepper { width:100%; letter-spacing:0; }
/* Camera presentation has one dark palette, independent of the app theme. */
.scan-camera {
 --workspace-action:#009ce4; --workspace-line:#34424f; --workspace-muted:#abb9c7;
 --workspace-bg:#0e151b; --workspace-panel:#0a1117; --workspace-field:#1b252f;
 --workspace-soft:#1c2a35; --workspace-warning:#efbc63; --workspace-warning-bg:#332a1b; --ink:#f2f6fa;
 position:fixed; inset:0; z-index:5; width:100%; height:var(--scanner-height,100dvh);
 display:grid; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden;
 margin:0; padding:0; border:0; border-radius:0; background:#05080b; color:var(--ink); color-scheme:dark;
 font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.scan-camera[hidden], .scan-camera [hidden] { display:none !important; }
.modal-backdrop:has(> .scan-camera:not([hidden])) > .scan-label-workspace { visibility:hidden; }
body:has(#scanCameraPanel:not([hidden])) #toast { visibility:hidden; }
.scan-camera-heading { display:flex; align-items:center; gap:8px; padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left)); background:#05080b; }
.scan-camera-heading > strong { flex:1; min-width:0; font-size:17px; font-weight:650; }
.scan-camera-heading-actions { display:flex; gap:3px; }
.modal-backdrop .scan-camera button { min-height:44px; min-width:44px; padding:10px 12px; border:0; border-radius:12px; box-shadow:none; font-size:14px; line-height:1.3; font-weight:600; }
.modal-backdrop .scan-camera-heading button { display:flex; align-items:center; justify-content:center; gap:3px; padding:9px; color:#fff; background:transparent; }
.scan-camera button:focus-visible, .scan-camera a:focus-visible, .scan-camera input:focus-visible { outline:3px solid #75d3ff; outline-offset:2px; }
.scan-camera-view { position:relative; min-height:0; overflow:hidden; background:#05080b; }
.scan-camera video, .scan-photo-preview { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.scan-camera video { inset:auto; left:50%; top:50%; transform:translate(-50%,-50%); max-width:none; max-height:none; visibility:hidden; }
.scan-camera[data-preview-ready="true"] video { visibility:visible; }
.scan-photo-preview { object-fit:contain; }
.scan-camera[data-source="photo"] video, .scan-camera[data-source="photo"] .scan-camera-overlay { display:none; }
.scan-camera-overlay { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.modal-backdrop .scan-camera-auto { position:absolute; top:58px; right:12px; z-index:1; min-height:44px; border:1px solid #60717d; color:#fff; background:#111b23e6; }
#scanCameraShade { fill:rgba(0,0,0,.18); }
#scanCameraTarget { fill:none; stroke:none; }
.scan-camera-target { fill:none; stroke:#fff; stroke-width:3; stroke-linecap:round; transition:stroke .2s; }
.scan-camera[data-state="found"] .scan-camera-target { stroke:#59e5a3; }
.scan-camera[data-state="detecting"] .scan-camera-target { stroke:#ffdb71; }
.scan-camera-hint { position:absolute; bottom:72px; left:18px; right:18px; display:grid; justify-items:center; align-content:start; gap:12px; pointer-events:none; }
#scanCameraStatus { max-width:460px; min-height:22px; margin:0; padding:9px 13px; border-radius:7px; background:rgba(0,0,0,.55); color:#fff; font-size:16px; line-height:1.4; font-weight:500; text-align:center; }
.scan-camera-hint button { pointer-events:auto; }
.scan-camera-dock { position:relative; z-index:2; display:flex; flex-direction:column; min-height:0; max-height:calc(var(--scanner-height,100dvh) - 160px); padding:0 max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); border:1px solid var(--workspace-line); border-bottom:0; border-radius:22px 22px 0 0; background:linear-gradient(145deg,#111b23,var(--workspace-bg) 55%); box-shadow:0 -12px 40px #0005; }
.scan-camera-dock-actions { flex:none; display:flex; align-items:center; gap:10px; padding-top:6px; }
.modal-backdrop .scan-camera-dock-actions button, .modal-backdrop .scan-camera-next button { color:var(--ink); background:var(--workspace-field); }
.modal-backdrop #scanCameraFinish { flex:1; background:var(--workspace-action); color:#fff; padding-inline:18px; }
.scan-camera-context { flex:none; min-width:0; margin:5px 0 0; color:var(--workspace-muted); font-size:11px; line-height:1.4; }
.scan-camera-context:empty { display:none; }
.modal-backdrop #scanCameraAgain { flex:1; padding-inline:10px; font-size:13px; }
#scanCameraZoomControl { position:absolute; left:50%; top:12px; translate:-50% 0; display:flex; align-items:center; justify-content:center; gap:12px; padding:0 12px; border-radius:24px; background:#05080bb3; font-size:12px; color:#c0c9d1; }
#scanCameraZoom { height:40px; width:min(210px,60vw); padding:0; border:0; accent-color:#fff; background:transparent; }
.modal-backdrop #scanCameraTorch[aria-pressed="true"] { background:#ffdc69; color:#24313b; }
.scan-camera-review, .scan-camera-settings { position:absolute; z-index:3; width:min(440px,calc(100% - 32px)); left:50%; transform:translateX(-50%); max-height:calc(var(--scanner-height,100dvh) - 96px); overflow:auto; overscroll-behavior:contain; padding:20px; border:1px solid var(--workspace-line); border-radius:16px; color:var(--ink); background:var(--workspace-bg); box-shadow:0 16px 64px #0008; }
.scan-camera-review { bottom:calc(var(--scanner-dock-height,160px) + 12px); max-height:calc(var(--scanner-height,100dvh) - var(--scanner-dock-height,160px) - 86px); display:grid; gap:14px; animation:scan-camera-result-in .18s ease-out; }
.scan-camera[data-state="review"] .scan-camera-view::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,.28); pointer-events:none; }
.scan-camera-read { display:flex; align-items:center; gap:14px; }
.scan-camera-read img { flex:none; width:72px; height:54px; object-fit:contain; border:1px solid var(--workspace-line); border-radius:6px; }
.scan-camera-read > div { min-width:0; }
.scan-camera-read pre { max-height:72px; margin:0 0 6px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--ink); font:600 19px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
#scanCameraFormat { font-size:12px; color:var(--workspace-muted); letter-spacing:.04em; }
.scan-camera-review p { margin:0; color:var(--workspace-muted); font-size:13px; line-height:1.45; }
.scan-camera-review label { display:grid; gap:6px; color:var(--workspace-muted); font-size:12px; }
.scan-camera-review input { width:100%; padding:11px 12px; min-height:46px; border:1px solid var(--workspace-line); border-radius:8px; color:var(--ink); background:var(--workspace-field); font-size:16px; }
.scan-camera-review input[aria-invalid="true"] { border-color:#ff8b95; }
.scan-camera-review .scan-camera-review-error { color:#ff8b95; }
.scan-camera-review-actions { display:grid; grid-template-columns:1fr 1.35fr; gap:10px; }
.modal-backdrop #scanCameraUsePart { color:#fff; background:var(--workspace-action); }
.modal-backdrop #scanCameraSkip { color:var(--ink); background:var(--workspace-field); }
.scan-camera-settings { z-index:4; top:max(72px,calc(env(safe-area-inset-top) + 64px)); }
.scan-camera-settings-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; font-size:18px; }
.modal-backdrop .scan-camera-settings button { color:#70d0ff; background:var(--workspace-field); }
.scan-camera-settings label { display:grid; gap:7px; font-size:13px; }
.scan-camera-settings select { width:100%; min-height:44px; padding:8px; border:1px solid var(--workspace-line); border-radius:8px; background:var(--workspace-field); color:var(--ink); font-size:16px; }
.scan-camera-settings p { font-size:13px; line-height:1.5; color:var(--workspace-muted); }
.scan-camera-details { margin-top:12px; color:var(--workspace-muted); font-size:12px; }
.scan-camera-details summary { cursor:pointer; min-height:44px; padding:12px 0; }
.scan-camera-details pre { max-height:170px; overflow:auto; padding:10px; white-space:pre-wrap; background:var(--workspace-panel); border:1px solid var(--workspace-line); border-radius:7px; font:12px/1.5 monospace; user-select:text; }
.scan-camera-frame { margin-top:12px; }
.scan-camera-frame img { display:block; max-width:100%; max-height:260px; object-fit:contain; border:1px solid var(--workspace-line); border-radius:7px; }
.scan-camera-frame a { display:inline-flex; align-items:center; min-height:44px; padding:8px 12px; border:1px solid var(--workspace-line); border-radius:7px; color:#70d0ff; font-weight:650; text-decoration:none; }
.scan-camera-controls { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.scan-camera-next { flex:none; display:grid; grid-template-columns:minmax(130px,1fr) minmax(110px,1fr); gap:10px 16px; }
.scan-camera-next > label { display:grid; min-width:0; gap:5px; margin:0; color:var(--workspace-muted); font-size:11px; font-weight:550; letter-spacing:0; text-transform:none; }
.scan-camera-next select, .scan-camera-next input { width:100%; min-width:0; height:44px; padding:9px 12px; border:1px solid var(--workspace-line); border-radius:10px; background:var(--workspace-field); color:var(--ink); font:500 16px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.scan-camera-next select { appearance:none; color-scheme:dark; padding-right:32px; background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%); background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%; background-size:5px 5px; background-repeat:no-repeat; }
.scan-camera-next select option { background:var(--workspace-field); color:var(--ink); }
.scan-camera-next input[aria-invalid="true"] { border-color:#ff8c92; outline:1px solid #ff8c92; }
.scan-camera-qty-stepper { display:flex; border:1px solid var(--workspace-line); border-radius:10px; overflow:hidden; }
.modal-backdrop .scan-camera-qty-stepper button { flex:none; width:44px; border-radius:0; padding:6px; font-size:22px; }
.scan-camera-qty-stepper input { padding-inline:2px; border:0; border-radius:0; text-align:center; }
.scan-camera-service-order { grid-column:1 / -1; }
.scan-camera-service-order-input { display:flex; gap:8px; min-width:0; }
.scan-camera-service-order-input input { flex:1; }
.modal-backdrop #scanCameraApplyServiceOrder { flex:none; background:var(--workspace-action); }
.scan-camera-tray { flex:1 1 auto; display:flex; flex-direction:column; min-height:0; margin-top:6px; border-top:1px solid var(--workspace-line); color:var(--ink); }
.scan-camera[data-tray-open="false"] .scan-camera-tray, .scan-camera[data-tray-open="false"] .scan-camera-context { display:none; }
.modal-backdrop .scan-camera-tray-toggle { flex:none; display:flex; align-items:center; gap:10px; width:100%; min-height:44px; padding:10px 0; border-radius:0; color:var(--ink); background:transparent; text-align:left; touch-action:none; }
.modal-backdrop .scan-camera-tray-handle { position:relative; flex:none; width:100%; height:44px; padding:0; color:var(--workspace-muted); background:transparent; touch-action:none; }
.scan-camera-tray-grip { position:absolute; top:9px; left:50%; width:36px; height:4px; translate:-50% 0; border-radius:4px; background:#61727f; }
.scan-camera-handle-chevron { position:absolute; top:26px; left:50%; width:7px; height:7px; translate:-50% 0; border-top:2px solid currentColor; border-left:2px solid currentColor; rotate:45deg; transition:rotate .25s ease; }
.scan-camera-handle-chevron::after { content:''; position:absolute; top:3px; left:3px; width:5px; height:5px; border-top:2px solid currentColor; border-left:2px solid currentColor; }
.scan-camera[data-tray-open="true"] .scan-camera-handle-chevron { rotate:225deg; }
.scan-camera-tray-toggle > strong { flex:1; text-align:right; color:var(--workspace-muted); font-size:12px; font-weight:500; }
.scan-camera-tray-chevron { flex:none; width:8px; height:8px; margin-inline:3px; border-top:2px solid currentColor; border-left:2px solid currentColor; rotate:45deg; transition:rotate .25s ease; }
.scan-camera[data-tray-open="true"] .scan-camera-tray-chevron { rotate:225deg; }
.scan-camera-tray-body { flex:1 1 auto; min-height:0; display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s cubic-bezier(.2,.7,.2,1); }
.scan-camera[data-tray-open="true"] .scan-camera-tray-body { grid-template-rows:1fr; }
.scan-camera-tray-body > div { min-height:0; overflow:hidden; }
.scan-camera-tray-scroll { height:100%; max-height:min(42dvh,360px); min-height:0; padding:0 0 4px; overflow:auto; overscroll-behavior:contain; scrollbar-color:#465a6b transparent; }
.scan-camera-tray-hint { margin:0; padding:0 0 10px; color:var(--workspace-muted); font-size:12px; line-height:1.45; }
.scan-camera-tray .scan-recent-list, .scan-camera-tray .spl-batch-list { margin-top:0; }
.modal-backdrop .scan-camera-tray .workspace-icon-button { padding:8px; min-width:44px; height:44px; color:#178bd0; background:transparent; }
.modal-backdrop .scan-camera-tray .workspace-remove { color:#ed424e; }
.modal-backdrop .scan-camera-tray .workspace-condition { min-width:0; min-height:36px; padding:6px 10px; border-radius:18px; font-size:12px; background:color-mix(in srgb,var(--condition-dot) 18%,var(--workspace-panel)); color:var(--ink); border-color:color-mix(in srgb,var(--condition-dot) 30%,transparent); }
.scan-camera-tray .spl-row-input { color:var(--ink); background:var(--workspace-field); border:1px solid var(--workspace-line); }
.scan-camera .workspace-empty { padding:12px; }
.scan-camera .workspace-empty-art { width:126px; height:80px; color:#00a9ef; filter:drop-shadow(0 0 8px #00a9ef25); }
.scan-camera .workspace-empty > p, .scan-camera .workspace-empty-hints { display:none; }
.scan-camera .workspace-empty > strong { font-size:17px; }
.scan-camera .badge.success { border-color:#1b6549; background:#153b2b; color:#77e6ad; }
.scan-camera[data-tray-open="true"] #scanCameraZoomControl { visibility:hidden; }
.scan-camera[data-tray-open="true"] .scan-camera-hint { visibility:hidden; }
.scan-camera[data-state="review"] .scan-camera-tray, .scan-camera[data-state="review"] .scan-camera-tray-handle { display:none; }
.scan-camera[data-tray-open="true"] .scan-camera-view::after { content:''; position:absolute; inset:0; background:#0005; pointer-events:none; }
@keyframes scan-camera-result-in { from { opacity:0; translate:0 12px; } to { opacity:1; translate:0 0; } }
@media (max-height:480px) and (min-width:600px) {
 .scan-camera-heading { padding-block:4px; }
 .scan-camera-dock { display:grid; grid-template-columns:44px minmax(0,1fr) clamp(120px,22vw,200px); grid-template-rows:auto minmax(0,1fr); gap:0 10px; align-items:center; max-height:calc(var(--scanner-height,100dvh) - 110px); padding-top:8px; padding-bottom:6px; }
 .scan-camera-next { grid-column:2; grid-row:1; grid-template-columns:minmax(90px,1fr) minmax(90px,1fr) minmax(170px,1.5fr); gap:10px; }
 .scan-camera-next:has(.scan-camera-service-order[hidden]) { grid-template-columns:1fr 1fr; }
 .scan-camera-service-order { grid-column:auto; }
 .scan-camera-tray-handle { grid-column:1; grid-row:1; }
 .scan-camera-dock-actions { grid-column:3; grid-row:1; padding-top:0; }
 .scan-camera-tray { grid-column:1 / -1; grid-row:2; align-self:stretch; }
 .scan-camera-context { display:none; }
}
@media (max-width:420px) { #scanCameraStop > span { display:none; } }
@media (max-width:350px) { #scanCameraSwitch { display:none; } .scan-camera-heading > strong { font-size:15px; white-space:nowrap; } }
@media (prefers-reduced-motion:reduce) { .scan-camera-review { animation:none; } .scan-camera-target, .scan-camera-tray-body, .scan-camera-tray-chevron, .scan-camera-handle-chevron { transition:none; } }
@media (max-width:768px), (orientation:landscape) and (max-height:600px) {
 .modal-backdrop:has(> .scan-label-workspace) { padding:0 var(--landscape-gutter); align-items:stretch; }
 .scan-label-workspace { width:100%; height:100dvh; max-height:100dvh; max-width:none; border:0; border-radius:0; }
 .scan-label-workspace .modal-head { padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px; gap:10px; }
 .scan-label-workspace .modal-body { padding:20px 14px; }
 .scan-label-workspace .modal-foot { padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px)); }
 .spl-input-action input, .scan-entry-row input#scanPartInput { font-size:15px; }
 .spl-service-order-entry input { font-size:16px; }
 .workspace-guidance, .spl-field-guidance { font-size:12px; }
 .spl-batch-row { grid-template-columns:16px minmax(0,1fr) 79px auto; gap:7px; padding:10px 8px; }
 .spl-batch-row .workspace-service-order { grid-column:2; grid-row:2; padding:0; border:0; display:flex; gap:5px; align-items:center; font-size:12px; }
 .spl-batch-row > .workspace-row-actions { grid-column:4; grid-row:1 / span 2; flex-wrap:wrap; max-width:76px; }
 .spl-batch-row > .workspace-row-condition { grid-column:3; grid-row:1 / span 2; padding-left:7px; }
 .spl-batch-row > .workspace-row-number { grid-row:1 / span 2; }
 .spl-batch-part, .scan-recent-item .pn { font-size:14px; }
 .workspace-icon-button { width:34px; min-width:34px; padding:6px; }
 .workspace-condition { font-size:11px; padding:4px 6px; }
 .workspace-row-meta > span:first-child { font-size:10px; }
 .spl-ai-fill { padding:5px 6px; min-height:32px; font-size:11px; width:100%; }
 .spl-row-editor { grid-column:1 / -1; }
 .scan-recent-item { grid-template-columns:16px minmax(0,1fr) 80px auto; gap:6px; padding:10px 8px; }
 .scan-recent-item > .workspace-row-actions { display:grid; gap:0; }
}
@media (max-width:350px) {
 .spl-scan-grid { grid-template-columns:1fr; }
 .spl-next-quantity, .spl-scan-condition { grid-column:1; }
 .spl-next-quantity { max-width:156px; }
 .spl-scan-condition { padding:0; border:0; }
 .scan-label-workspace .eyebrow, .scan-recent-heading h4 { font-size:11px; }
 .scan-recent-heading h3 { font-size:16px; }
 .spl-batch-row { grid-template-columns:12px minmax(0,1fr) 68px auto; gap:5px; }
 .spl-batch-row > .workspace-row-actions { display:grid; max-width:34px; }
 .spl-ai-fill { width:34px; padding:5px; gap:0; font-size:0; }
 .spl-batch-part { font-size:13px; }
 .workspace-empty-hints > div { padding:0 6px; font-size:11px; }
 .spl-row-editor { grid-template-columns:1fr; }
}
@media (orientation:landscape) and (max-height:600px) {
 .scan-label-workspace { height:100dvh; max-height:100dvh; }
 .scan-label-workspace .modal-body { overflow:auto; }
 .scan-label-workspace .modal-head { padding:8px 14px; }
}

.scan-description-edit { padding:0; min-height:32px; border:0; background:transparent; font:inherit; white-space:normal; text-align:left; }
@media (hover:hover) and (pointer:fine) { .scan-description-edit:hover { color:var(--workspace-warning); background:var(--workspace-warning-bg); } }
