.stock-workspace .stock-asset-marker {
  border-radius: 4px;
  min-width: 44px;
  min-height: 44px;
  border: 2px dashed currentColor;
}
.stock-asset-layer details { margin-block: 8px; }
.stock-asset-layer summary { min-height: 44px; padding-block: 10px; cursor: pointer; }
.stock-asset-notes { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; overflow-wrap: anywhere; min-width: 150px; max-width: 28ch; }
.sb-i[data-v="pm-stock"] .sb-bg{background:linear-gradient(135deg,#F59E0B,#EF4444);color:#fff;font-size:10px;font-weight:800;letter-spacing:.08em;border-radius:0;padding:2px 7px;box-shadow:0 0 0 1px rgba(245,158,11,.45)}
/* Additive stock workspace - existing APEX operational ledger and tokens. */
.stock-view-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.stock-view-tools [aria-pressed=true]{background:var(--acc);color:var(--white);border-color:var(--acc)}
.stock-condition-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.stock-condition{border:1px solid var(--bdr);border-left:4px solid var(--tx3);background:var(--bg2);color:var(--tx);padding:8px 12px;font:inherit;min-height:44px;cursor:pointer}
.stock-condition[data-condition=usable]{border-left-color:#287967}
.stock-condition[data-condition=held]{border-left-color:#a77420}
.stock-condition[data-condition=missing]{border-left-color:var(--red)}
.stock-condition[data-condition=maintenance]{border-left-color:#99602e}
.stock-condition[aria-pressed=true]{outline:2px solid var(--acc);outline-offset:2px}
.stock-badge[data-condition=usable]{color:#236453;border-color:#287967;background:#e5f0e9}
.stock-badge[data-condition=held]{border-color:var(--amb);background:var(--amb2);color:var(--tx)}
.stock-badge[data-condition=missing]{border-color:var(--red);color:var(--red)}
.stock-badge[data-condition=maintenance]{border-color:#99602e;color:#875328;background:#f4ede2}
.stock-badge[data-condition=unassessed]{color:var(--tx3);background:var(--bg3);border-color:var(--bdr)}
.stock-map-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:16px;align-items:start}
.stock-geo-grid{position:relative;min-height:390px;margin:12px 0;border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;background-color:var(--bg2);background-image:linear-gradient(to right,var(--bdr) 1px,transparent 1px),linear-gradient(to bottom,var(--bdr) 1px,transparent 1px);background-size:10% 16.6667%}
.stock-geo-grid::before{content:'90° N';position:absolute;top:8px;left:10px;color:var(--tx3);font:12px var(--m)}
.stock-geo-grid::after{content:'90° S   /   longitude: 180° W to 180° E';position:absolute;bottom:8px;left:10px;color:var(--tx3);font:12px var(--m)}
.stock-geo-marker{position:absolute;transform:translate(-50%,-50%);border:2px solid var(--white);border-radius:50%;background:var(--acc);color:var(--white);min-width:44px;min-height:44px;font:700 13px var(--m);cursor:pointer;z-index:1}
.stock-location-list{max-height:520px;overflow:auto}
.stock-location-list details{border-bottom:1px solid var(--bdr);padding:10px 0;scroll-margin:20px}
.stock-location-list summary{min-height:44px;cursor:pointer;font-weight:700;padding:8px 0;overflow-wrap:anywhere}
.stock-location-list details:target,.stock-location-list details[open]{border-left:3px solid var(--acc);padding-left:10px}
.stock-location-items{margin:8px 0;padding-left:18px}
.stock-location-items li{padding:6px 0}
.stock-saved-views{padding:12px 0;border-bottom:1px solid var(--bdr);margin-bottom:14px}
.stock-saved-views select{max-width:280px}
.stock-timeline{display:grid;gap:12px;list-style:none;margin:14px 0;padding:0 0 0 16px;border-left:2px solid var(--bdr)}
.stock-timeline li{padding:8px;background:var(--bg2);overflow-wrap:anywhere}
.stock-progress-table progress{width:100%;min-width:120px;accent-color:var(--acc)}
@media(max-width:1024px){#stock-workspace .fi,#stock-workspace .btn,.stock-dialog .fi,.stock-dialog .btn{min-height:44px}}
@media(max-width:767px){.stock-map-layout{grid-template-columns:minmax(0,1fr)}.stock-geo-grid{min-height:300px}.stock-location-list{max-height:none}.stock-condition-summary>*{flex:1 1 135px}.stock-view-tools>*{flex:1 1 130px}}
.stock-dialog.stock-intake-dialog{width:min(1180px,calc(100vw - 24px))}
.stock-intake-context{padding:12px 14px;border:1px solid var(--bdr);background:var(--bg2);margin-bottom:14px}
.stock-intake-context .stock-note{max-width:80ch}
.stock-intake-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.stock-intake-mapping{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stock-intake-row{border:1px solid var(--bdr);border-left:3px solid var(--acc);border-radius:var(--r);padding:12px;margin:12px 0;background:var(--bg2);min-width:0}
.stock-intake-row[data-invalid=true]{border-left-color:var(--red)}
.stock-intake-row summary{cursor:pointer;font-weight:700;min-height:38px;overflow-wrap:anywhere}
.stock-intake-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0}
.stock-intake-compare>div{min-width:0;padding:10px;background:var(--white);border:1px solid var(--bdr)}
.stock-intake-compare h3{font-size:var(--fs-sm);margin:0 0 8px}
.stock-intake-compare .stock-facts{gap:8px}
.stock-intake-compare .stock-facts dd{font-size:var(--fs-sm)}
.stock-intake-dialog footer{position:sticky;bottom:0;background:var(--white);border-top:1px solid var(--bdr);padding:12px 0;z-index:2}
.stock-intake-dialog .stock-check{margin:14px 0;line-height:1.5}
.stock-intake-dialog :is(input,select){min-height:44px}
.stock-intake-dialog summary:focus-visible,.stock-document-panel summary:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.stock-document-list{display:grid;gap:10px}
.stock-document-version{padding:12px;background:var(--bg2);border:1px solid var(--bdr);overflow-wrap:anywhere}
.stock-document-checklist{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.stock-document-checklist .stock-badge{white-space:normal}
.stock-document-panel [aria-busy=true]{min-height:100px}
@media(max-width:900px){.stock-intake-mapping{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.stock-intake-mapping,.stock-intake-compare{grid-template-columns:minmax(0,1fr)}.stock-intake-dialog .stock-form-grid{gap:12px}.stock-intake-row{padding:10px}.stock-intake-nav .btn{flex:1 1 140px}.stock-document-version .btn{min-height:44px}.stock-intake-dialog footer .btn{flex:1 1 150px}}
.stock-planning{--plan-tint:var(--bg2);min-width:0}
.stock-plan-nav{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--bdr);margin-bottom:20px;padding-bottom:8px}
.stock-plan-nav a{display:flex;align-items:center;min-height:44px;padding:8px 14px;color:var(--tx2);text-decoration:none;border-radius:var(--r);font-weight:700}
.stock-plan-nav a[aria-current=page]{background:var(--acc);color:var(--white)}
.stock-plan-list{display:grid;gap:12px}
.stock-plan-card{border:1px solid var(--bdr);border-left:3px solid var(--acc);border-radius:var(--r);background:var(--white);padding:16px;min-width:0}
.stock-plan-card h3{font-size:var(--fs-md);margin:4px 0 10px;overflow-wrap:anywhere}
.stock-plan-card .stock-actions{margin-top:12px}
.stock-plan-component{border:1px solid var(--bdr);background:var(--bg2);padding:14px;margin:12px 0;border-radius:var(--r);min-width:0}
.stock-plan-component .stock-form-grid{margin-top:12px}
.stock-plan-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px;margin:12px 0}
.stock-plan-metrics div{border-left:2px solid var(--bdr);padding-left:10px}
.stock-plan-metrics strong{display:block;font-family:var(--m);font-size:var(--fs-md)}
.stock-plan-metrics small{color:var(--tx3)}
.stock-plan-results{display:grid;gap:8px;margin-block:10px}
.stock-plan-results .btn{text-align:left;white-space:normal;overflow-wrap:anywhere}
.stock-plan-progress{width:100%;height:12px;accent-color:var(--acc)}
.stock-plan-history{margin-top:18px}
.stock-plan-history summary{cursor:pointer;min-height:44px;font-weight:700;padding:10px 0}
.stock-plan-readonly{padding:12px;border-left:3px solid var(--acc);background:var(--bg2);margin-bottom:16px}
@media(pointer:coarse),(max-width:767px){.stock-planning .btn,.stock-plan-nav a,.stock-plan-component .fi{min-height:44px}}
.stock-condition-list{display:grid;gap:10px}
.stock-condition-row{border:1px solid var(--bdr);padding:12px;background:var(--bg2)}
.stock-condition-row .stock-toolbar{margin-bottom:6px}
.stock-badge[data-tone="attention"]{background:var(--amb2);color:var(--tx);border-color:var(--amb)}
.stock-badge[data-tone="danger"]{color:var(--red);border-color:var(--red)}
.stock-balance{display:block;padding:4px 0}
.stock-balance small{display:block;color:var(--tx3)}
.stock-history{margin:0;padding-left:20px}
.stock-history li{padding:8px 0;border-bottom:1px solid var(--bdr);font-size:var(--fs-sm);overflow-wrap:anywhere}
.stock-reminders{position:relative;flex:none;box-sizing:border-box;max-width:100%;max-height:25dvh;overflow:auto;background:var(--white);border-bottom:1px solid var(--bdr);padding:8px 16px;color:var(--tx);font-family:var(--f)}
.stock-reminders:empty{display:none}
.stock-reminder{padding:10px 0;border-bottom:1px solid var(--bdr);font-size:var(--fs-sm)}
.stock-reminder:last-child{border-bottom:0}
.stock-reminder .stock-actions{margin-top:8px}
.stock-reminder .btn{min-height:38px}
.stock-dialog textarea.fi{min-height:88px;resize:vertical}
@media(max-width:767px){.stock-reminders{max-height:28dvh}.stock-reminder .btn{min-height:44px}}
.stock-dialog.stock-mir-dialog{width:min(1080px,calc(100vw - 24px))}
.stock-mir-dialog .stock-dialog-head{background:var(--bg2)}
.stock-mir-dialog footer{position:sticky;bottom:0;background:var(--white);border-top:1px solid var(--bdr);padding:12px 0;z-index:2}
.stock-line-availability{grid-column:1/-1;font-size:var(--fs-sm);color:var(--tx3);margin:0}
.stock-line-availability[data-shortage=true]{color:var(--red);font-weight:700}
.stock-dialog:not(.stock-mir-dialog) .stock-line-availability{display:none}
.stock-line-identity{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin:0;padding:10px 12px;background:var(--bg2);font-size:var(--fs-sm)}
.stock-line-identity dt{color:var(--tx3);font-size:var(--fs-xs)}
.stock-line-identity dd{margin:3px 0 0;overflow-wrap:anywhere}
.stock-dialog:not(.stock-mir-dialog) .stock-line-identity{display:none}
@media(max-width:767px){.stock-line-identity{grid-template-columns:minmax(0,1fr)}}
.stock-mir-summary{padding:10px 12px;background:var(--bg2);border-left:3px solid var(--acc);margin-block:12px;font-size:var(--fs-sm)}
.stock-evidence-row{padding:12px 0;border-bottom:1px solid var(--bdr)}
.stock-manifest-camera{margin-block:12px;max-width:480px}
.stock-workspace{min-width:0;max-width:100%;color:var(--tx)}
.stock-toolbar,.stock-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.stock-toolbar{justify-content:space-between;margin-bottom:var(--sp-md)}
.stock-heading h1{font-size:var(--fs-xl);margin:0 0 4px;font-weight:800}
.stock-heading p,.stock-note{font-size:var(--fs-sm);color:var(--tx3);line-height:1.6;margin:4px 0}
.stock-tabs.utabs{max-width:100%;min-width:0}
.stock-tabs.utabs>.utab{flex:none;transition:none}
.stock-workspace-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:var(--sp-md)}
.stock-workspace-nav .stock-tabs{margin-bottom:0;overflow-x:auto}
.stock-scan-shortcut{flex-shrink:0}
@media(max-width:767px){.stock-workspace-nav{align-items:stretch;flex-direction:column;gap:8px}.stock-workspace-nav .stock-tabs{display:flex;flex-wrap:wrap}.stock-workspace-nav .stock-tabs>.utab{white-space:normal;text-align:left;min-height:44px}.stock-scan-shortcut{align-self:flex-end;min-width:110px}}
@media(pointer:coarse){.stock-tabs.utabs>.utab{min-width:44px;min-height:44px}}
@media(max-width:600px){.stock-tabs.utabs>.utab{padding:8px 6px;font-size:12px;min-height:44px}}
.stock-workspace .btn,.stock-dialog .btn{min-height:38px;padding:6px 10px}
.stock-filters,.stock-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-md)}
.stock-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r);margin-bottom:12px}
.stock-filters>.stock-actions{grid-column:1/-1;align-self:end}
.stock-filters>label{align-content:start}
.stock-filters .fi{height:38px;margin:0}
@media(min-width:1100px){.stock-filters{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.stock-filters>.stock-actions{grid-column:auto;flex-wrap:nowrap}}
@media(pointer:coarse),(max-width:767px){.stock-workspace .btn,.stock-dialog .btn{min-width:44px}}
.stock-workspace label,.stock-dialog label{display:grid;gap:6px;font-size:var(--fs-sm);color:var(--tx2);font-weight:600;min-width:0}
.stock-workspace .fi,.stock-dialog .fi{width:100%;min-width:0;box-sizing:border-box;min-height:38px}
.stock-check{display:flex!important;align-items:center;gap:8px!important;align-self:center}
.stock-check input{width:18px;height:18px;flex:none}
.stock-workspace [hidden],.stock-dialog [hidden]{display:none!important}
.stock-panel{border:1px solid var(--bdr);background:var(--white);border-radius:var(--r);padding:var(--sp-lg);margin-bottom:var(--sp-md);min-width:0}
.stock-panel h2{font-size:var(--fs-md);margin:0 0 var(--sp-md)}
.stock-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--bdr);border-radius:var(--r)}
.stock-table-wrap .tbl{min-width:660px;width:100%}
.stock-table-wrap td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}
.stock-code{font-family:var(--m);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.stock-link{background:none;border:0;color:var(--acc);font:inherit;font-weight:700;cursor:pointer;text-align:left;padding:4px 0;text-decoration:underline;text-underline-offset:3px}
.stock-badge{display:inline-block;background:var(--bg3);border:1px solid var(--bdr);border-radius:var(--r-sm);padding:3px 8px;font-size:var(--fs-xs);font-weight:700}
.stock-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-md);margin:0}
.stock-facts dt{font-size:var(--fs-xs);color:var(--tx3);margin-bottom:4px}
.stock-facts dd{margin:0;font-size:var(--fs-base);overflow-wrap:anywhere}
.stock-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:var(--sp-lg)}
.stock-state{padding:var(--sp-xl);text-align:center;border:1px dashed var(--bdr);border-radius:var(--r);background:var(--bg2)}
.stock-state h2{font-size:var(--fs-md)}
.stock-alert{border-left:3px solid var(--amb);background:var(--amb2);padding:var(--sp-md);margin-bottom:var(--sp-md);font-size:var(--fs-sm);line-height:1.6;overflow-wrap:anywhere}
.stock-error{color:var(--red);font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere}
.stock-error:empty{display:none}
.stock-pager{display:flex;justify-content:space-between;gap:var(--sp-sm);align-items:center;padding:var(--sp-md) 0;font-size:var(--fs-sm)}
/* Restore native modal centering after the global margin reset. */
.stock-dialog{margin:auto;box-sizing:border-box;width:min(780px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--bdr);border-radius:var(--r-lg);background:var(--white);color:var(--tx);padding:0;font-family:var(--f);box-shadow:var(--shadow)}
.stock-dialog::backdrop{background:rgba(11,17,32,.6)}
.stock-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border-bottom:1px solid var(--bdr)}
.stock-dialog-head h2{margin:0;font-size:var(--fs-md)}
.stock-dialog-body{padding:var(--sp-lg)}
.stock-dialog footer{display:flex;justify-content:flex-end;gap:var(--sp-sm);flex-wrap:wrap;margin-top:var(--sp-lg)}
.stock-dialog fieldset{border:1px solid var(--bdr);border-radius:var(--r-sm);padding:var(--sp-md);margin:var(--sp-md) 0;min-width:0}
.stock-dialog legend{font-size:var(--fs-sm);font-weight:700}
.stock-span{grid-column:1/-1}
.stock-line{display:grid;grid-template-columns:minmax(150px,2fr) minmax(65px,1fr) minmax(65px,1fr) 65px auto;gap:8px;align-items:end;padding:12px 0;border-bottom:1px solid var(--bdr)}
.stock-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin:8px 0}
.stock-dialog .stock-field-actions{align-items:flex-end;gap:8px}
.stock-field-actions>label{flex:1 1 220px}
.stock-field-actions>.btn{flex:0 0 auto}
.stock-field-actions .fi{margin:0}
.stock-option{align-items:end}
@media(max-width:767px){.stock-field-actions>label{flex-basis:100%}.stock-option{grid-template-columns:minmax(0,1fr)}}
.stock-skeleton{height:20px;width:70%;margin:18px 0;border-radius:var(--r-sm);background:var(--bg3)}
.stock-skeleton:last-child{height:180px;width:100%}
.stock-scan-video{display:block;width:100%;max-height:45dvh;background:var(--bg3);border-radius:var(--r);object-fit:cover}
/* Scan stays a single, bounded workspace; other inventory panels are unchanged. */
.stock-panel.stock-scan-panel{box-sizing:border-box;width:100%;max-width:680px;margin-inline:auto}
.stock-scan-panel .stock-camera-actions{gap:var(--sp-md);margin-bottom:var(--sp-lg)}
.stock-scan-panel .stock-camera-actions [data-stock-action=start-camera]{flex:1 1 240px;min-height:64px;padding:14px 24px;background:var(--acc);border-color:var(--acc);color:var(--white);font-size:clamp(20px,2.5vw,26px);font-weight:800;line-height:1.25;white-space:normal}
.stock-scan-panel .stock-camera-actions [data-stock-action=stop-camera]{min-height:48px}
.stock-scan-panel .stock-scan-video{margin-bottom:var(--sp-md)}
.stock-scan-panel .stock-note,.stock-scan-panel .stock-error{line-height:1.6;margin-block:var(--sp-md)}
.stock-scan-panel h2{margin-top:var(--sp-lg);margin-bottom:var(--sp-md)}
.stock-scan-panel #stock-lookup{display:grid;gap:var(--sp-md);min-width:0}
.stock-scan-panel #stock-lookup label{font-size:var(--fs-base)}
.stock-scan-panel #stock-lookup .fi{min-height:48px;font-size:16px}
.stock-scan-panel #stock-lookup .stock-actions{gap:var(--sp-md)}
.stock-scan-panel #stock-lookup .btn{min-height:48px;white-space:normal}
@media(max-width:767px){.stock-scan-panel .stock-camera-actions [data-stock-action=start-camera]{flex-basis:100%}.stock-scan-panel #stock-lookup .stock-actions .btn{flex:1 1 160px}}
.stock-workspace :is(button,input,select,textarea,summary,a):focus-visible,.stock-dialog :is(button,input,select,textarea):focus-visible{outline:2px solid var(--acc);outline-offset:3px}
/* After base controls so iPad keeps 44px targets and avoids input zoom too. */
@media(pointer:coarse){.stock-workspace .btn,.stock-dialog .btn,.stock-workspace .fi,.stock-dialog .fi,.stock-workspace .stock-link{min-height:44px}.stock-workspace input,.stock-workspace select,.stock-dialog input,.stock-dialog select,.stock-dialog textarea{font-size:16px}}
@media(max-width:767px){.stock-filters,.stock-form-grid,.stock-columns,.stock-facts{grid-template-columns:minmax(0,1fr)}.stock-toolbar{align-items:flex-start}.stock-workspace .btn,.stock-dialog .btn,.stock-workspace .fi,.stock-dialog .fi{min-height:44px}.stock-line{grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--sp-md) 0}.stock-line>label:first-child{grid-column:1/-1}.stock-dialog-body{padding:var(--sp-md)}.stock-panel{padding:var(--sp-md)}}
/* Workspace-only Scan affordance. APEX mobile navigation is a side drawer,
   not a bottom bar; safe-area spacing is therefore the only bottom offset. */
#stock-workspace:has(.stock-scan-fab){padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
#stock-workspace .stock-scan-fab{
  position:fixed;right:max(24px,env(safe-area-inset-right,0px));
  bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:70;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  box-sizing:border-box;min-width:104px;min-height:48px;margin:0;padding:12px 18px;
  border:1px solid var(--acc);border-radius:var(--r-lg);
  background:var(--acc);color:var(--white);box-shadow:var(--shadow);
  font-family:var(--f);font-size:var(--fs-base);font-weight:700;line-height:1.3;
  white-space:nowrap;cursor:pointer;touch-action:manipulation;
}
#stock-workspace .stock-scan-fab svg{display:block;flex:none;width:20px;height:20px}
#stock-workspace .stock-scan-fab:hover{box-shadow:var(--shadow-lg)}
#stock-workspace .stock-scan-fab:active{transform:translateY(1px)}
#stock-workspace .stock-scan-fab:focus-visible{outline:2px solid var(--acc);outline-offset:4px}
/* Native dialogs enter the top layer; also suppress Scan for APEX overlays
   and its mobile drawer so an underlying workspace action cannot distract. */
body:has(dialog[open]) #stock-workspace .stock-scan-fab,
body:has(#modal-overlay:not([hidden]):not([style*="display:none"]):not([style*="display: none"])) #stock-workspace .stock-scan-fab,
body:has(.modal-overlay:not([hidden]):not([style*="display:none"]):not([style*="display: none"])) #stock-workspace .stock-scan-fab,
body:has(.docpv-overlay:not([hidden]):not([style*="display:none"]):not([style*="display: none"])) #stock-workspace .stock-scan-fab,
body:has(.sb.open) #stock-workspace .stock-scan-fab{display:none}

/* Scope every scanner override to the new dialog; existing Scan and all
   inventory edit/create dialogs keep their original sizing and controls. */
dialog.stock-dialog.stock-scanner-dialog{
  width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);
  overflow:hidden;
}
dialog.stock-scanner-dialog[open]{display:flex;flex-direction:column}
.stock-scanner-dialog .stock-dialog-head{flex:none;padding:12px 16px}
.stock-scanner-dialog .stock-dialog-head .btn{min-width:44px;min-height:44px}
.stock-scanner-dialog .stock-dialog-body{
  min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;padding:16px;
}
.stock-scanner-dialog .stock-panel.stock-scan-panel{
  width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;
}
.stock-scanner-dialog .stock-scan-panel .stock-camera-actions{gap:8px;margin-bottom:12px}
.stock-scanner-dialog .stock-scan-panel .stock-camera-actions [data-stock-action=start-camera]{
  flex:1 1 160px;min-height:44px;padding:10px 14px;
  font-size:var(--fs-base);font-weight:700;line-height:1.4;
}
.stock-scanner-dialog .stock-scan-panel .stock-camera-actions [data-stock-action=stop-camera]{min-height:44px}
.stock-scanner-dialog .stock-scan-video{max-height:30dvh;object-fit:contain}
.stock-scanner-dialog .stock-scan-panel :is(.stock-note,.stock-error){margin-block:10px}
.stock-scanner-dialog .stock-scan-panel h2{margin-block:14px 10px}
.stock-scanner-dialog .stock-scan-panel #stock-lookup{gap:10px}
.stock-scanner-dialog .stock-scan-panel #stock-lookup .stock-actions{gap:8px}
.stock-scanner-dialog .stock-scan-panel #stock-lookup :is(.fi,.btn){min-height:44px}
@media(max-width:767px){
  #stock-workspace .stock-scan-fab{
    right:max(14px,env(safe-area-inset-right,0px));
    bottom:calc(16px + env(safe-area-inset-bottom,0px));
  }
  dialog.stock-dialog.stock-scanner-dialog{
    position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:100%;
    max-height:calc(100dvh - max(16px,env(safe-area-inset-top,0px)));
    border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0;
  }
  .stock-scanner-dialog .stock-dialog-head{
    padding-left:max(16px,env(safe-area-inset-left,0px));
    padding-right:max(16px,env(safe-area-inset-right,0px));
  }
  .stock-scanner-dialog .stock-dialog-body{
    padding:14px max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
  }
  .stock-scanner-dialog .stock-scan-panel #stock-lookup .stock-actions .btn{flex:1 1 120px}
}

/* Material Management is a peer section; inherit APEX's existing sidebar ink. */
.stock-sidebar{
  --stock-sidebar-ink:#64748B;
  --stock-sidebar-hover-ink:var(--tx3);
  --stock-sidebar-hover:rgba(255,255,255,.06);
  --stock-sidebar-active-ink:#60A5FA;
  --stock-sidebar-active:rgba(59,130,246,.15);
}
.stock-sidebar a.stock-sidebar-child:hover{
  background:var(--stock-sidebar-hover);color:var(--stock-sidebar-hover-ink);
}
.stock-sidebar a.stock-sidebar-child{
  display:flex;align-items:center;box-sizing:border-box;width:100%;min-width:44px;
  position:relative;gap:10px;min-height:44px;margin:0;padding:10px 14px;border:0;border-radius:var(--r-sm);
  background:transparent;color:var(--stock-sidebar-ink);font-family:var(--f);
  font-size:12.5px;font-weight:500;line-height:1.5;text-align:left;
  overflow-wrap:anywhere;cursor:pointer;touch-action:manipulation;text-decoration:none;
}
.stock-sidebar a.stock-sidebar-child[aria-current=page]{
  background:var(--stock-sidebar-active);color:var(--stock-sidebar-active-ink);font-weight:700;
}
.stock-sidebar a.stock-sidebar-child[aria-current=page]::before{
  content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;background:currentColor;
}
.stock-sidebar a.stock-sidebar-child:focus-visible{
  outline:2px solid var(--stock-sidebar-active-ink);outline-offset:-2px;
}
.stock-workspace-nav label.stock-section-selector{
  display:grid;gap:6px;flex:0 1 280px;min-width:0;margin:0;
  font-family:var(--f);font-size:var(--fs-sm);font-weight:600;color:var(--tx2);
}
.stock-workspace-nav .stock-section-selector select.fi{
  box-sizing:border-box;width:100%;min-width:44px;min-height:44px;height:auto;margin:0;
}
.stock-workspace-nav button.stock-settings{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  flex:0 0 auto;align-self:center;min-width:44px;min-height:44px;margin-left:auto;
  touch-action:manipulation;
}
.stock-workspace-nav :is(select.fi,button.stock-settings):focus-visible{
  outline:2px solid var(--acc);outline-offset:3px;
}
@media(min-width:769px){
  .app:not(.sb-mini) .stock-workspace-nav label.stock-section-selector{display:none}
  .app.sb-mini .stock-sidebar a.stock-sidebar-child{
    flex-direction:column;justify-content:center;gap:4px;padding:8px 2px;min-height:54px;color:#94A3B8;
  }
  .app.sb-mini .stock-sidebar a.stock-sidebar-child[aria-current=page]{color:var(--stock-sidebar-active-ink)}
  .app.sb-mini .stock-sidebar .sb-lbl{display:block;font-size:9px;letter-spacing:0;text-align:center;padding:12px 0 6px;overflow-wrap:anywhere}
}
@media(max-width:768px){
  .stock-workspace-nav{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px}
  .stock-workspace-nav label.stock-section-selector{flex:1 1 160px}
  .stock-workspace-nav .stock-section-selector select.fi{font-size:16px}
}

/* Payroll's rendered ledger density, scoped to Materials only. Keep full
   identifiers available by wrapping, not by truncating operational values. */
.stock-workspace .stock-table-wrap{background:var(--card);border-color:var(--bdr);border-radius:var(--r-sm);overscroll-behavior-x:contain}
.stock-workspace .tbl{background:var(--card);color:var(--tx);border-collapse:separate;border-spacing:0}
.stock-workspace .tbl :is(th,td){padding:5px 8px!important;font-size:12px!important;line-height:1.35;vertical-align:middle}
.stock-workspace .tbl thead tr{height:36px}
.stock-workspace .tbl thead th{background:var(--card);color:var(--tx);font-family:var(--f);font-weight:600;letter-spacing:0;text-transform:none;border-bottom:1px solid var(--bdr)}
.stock-workspace .tbl tbody tr{height:40px;background:var(--card)}
.stock-workspace .tbl td{border-bottom:1px solid var(--bdr2)}
.stock-workspace .tbl tbody tr:last-child td{border-bottom:0}
.stock-workspace .stock-toolbar{margin-bottom:8px}
.stock-workspace .stock-heading h1{margin:0;font-size:var(--fs-xl)}
.stock-workspace .stock-workspace-nav{margin-bottom:8px}
.stock-workspace .stock-workspace-nav:has(.stock-section-selector:only-child){margin-bottom:0}
.stock-workspace .stock-saved-views{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:0 0 8px;margin:0 0 8px}
.stock-workspace .stock-saved-views .stock-note{margin:0}
.stock-workspace details.stock-saved-views{display:block}
.stock-workspace details.stock-saved-views>summary{width:fit-content;cursor:pointer;font-size:12px;font-weight:600;line-height:1.35;padding:8px 0;min-height:34px;box-sizing:border-box}
.stock-workspace details.stock-saved-views[open]>:not(summary){margin:4px 6px 4px 0}
.stock-workspace .stock-view-tools{margin-bottom:8px;gap:6px}
.stock-workspace .stock-condition-summary{gap:6px;margin:8px 0}
.stock-workspace .stock-condition{padding:6px 10px;min-height:34px;font-size:12px}
.stock-workspace .stock-balance{padding:0}
.stock-workspace .stock-balance small{line-height:1.35}
.stock-workspace .stock-panel{padding:12px;margin-bottom:12px}
.stock-workspace .stock-panel h2{margin-bottom:8px}
.stock-workspace .stock-filters{gap:8px;padding:8px;margin-bottom:8px}
.stock-workspace .stock-filters label{gap:4px;font-size:11px}
.stock-workspace :is(.stock-toolbar,.stock-saved-views,.stock-view-tools,.stock-filters,.stock-plan-nav,.stock-pager) :is(.btn,.fi),
.stock-workspace .stock-plan-nav a{box-sizing:border-box;min-height:34px;height:34px;padding:6px 8px;font-size:12px;line-height:1.35}
.stock-workspace .tbl :is(button,.btn,.fi){box-sizing:border-box;min-height:30px;height:30px;padding:4px 8px;font-size:12px;line-height:1.35}
.stock-workspace .tbl .btn{white-space:nowrap}
.stock-workspace .tbl .stock-link{height:auto;max-width:46ch;white-space:normal}
.stock-workspace .stock-pager{flex-wrap:wrap;padding:10px 0;gap:10px;font-size:12px;color:var(--tx2)}
.stock-workspace .stock-plan-nav{margin-bottom:8px;padding-bottom:6px}
.stock-workspace .stock-plan-list{display:block;border:1px solid var(--bdr);border-radius:var(--r-sm);background:var(--card)}
.stock-workspace .stock-plan-list>.stock-plan-card{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(160px,1fr) minmax(160px,1fr);gap:4px 16px;align-items:center;border:0;border-bottom:1px solid var(--bdr2);border-radius:0;background:var(--card);padding:8px;min-height:40px}
.stock-workspace .stock-plan-list>.stock-plan-card:last-child{border-bottom:0}
.stock-workspace .stock-plan-card>.stock-toolbar{margin:0;gap:6px}
.stock-workspace .stock-plan-card h3{margin:0;font-size:12px;line-height:1.35}
.stock-workspace .stock-plan-card>.stock-note,.stock-workspace .stock-plan-card>p{margin:0;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.stock-workspace .stock-plan-card>label{grid-column:2/-1}
.stock-workspace .stock-plan-card .stock-badge{padding:2px 6px;font-size:11px}
@media(max-width:768px),(pointer:coarse){
  .stock-workspace :is(.stock-toolbar,.stock-saved-views,.stock-view-tools,.stock-filters,.stock-plan-nav,.stock-pager) :is(.btn,.fi),
  .stock-workspace .stock-plan-nav a,.stock-workspace .stock-condition,
  .stock-workspace .tbl :is(button,.btn,.fi){height:auto;min-height:44px}
  .stock-workspace details.stock-saved-views>summary{min-height:44px}
  .stock-workspace .tbl .btn{min-width:44px}
  .stock-workspace :is(input.fi,select.fi,textarea.fi){font-size:16px}
}
@media(max-width:767px){
  .stock-workspace .stock-plan-list>.stock-plan-card{grid-template-columns:minmax(0,1fr);gap:6px;padding:10px}
  .stock-workspace .stock-plan-card>label{grid-column:auto}
  .stock-workspace .stock-saved-views>select{max-width:100%}
}
