/* Inventory (task 082). Layout only; colors, type and components come from portal-brand.css. */
.inv-title{font-family:var(--font-display);font-size:28px;font-weight:600;margin:0 0 6px;line-height:1.1}
.inv-title-sub{font-size:16px;font-weight:500;color:var(--ink-2);font-family:var(--font-body)}
.inv-head{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;justify-content:space-between;margin:0 0 6px}
.inv-asof{font-size:13px;color:var(--ink-2)}.inv-asof.is-stale{color:var(--warn)}
.inv-lead{margin:0 0 12px;color:var(--ink-2)}
.inv-crumbs{font-size:14px;color:var(--ink-2);margin:0 0 8px}.inv-crumbs a{color:inherit}
.inv-search{margin:0 0 14px}
.inv-search-row{display:flex;gap:8px}.inv-search-row input{flex:1;min-width:0;font-size:18px;padding:12px 14px;border-radius:12px}
.inv-search-row .btn{font-size:16px;padding:0 18px;min-height:44px}
.inv-opts{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:14px;color:var(--ink-2);margin-top:8px}
.inv-opts label{display:inline-flex;gap:6px;align-items:center;min-height:32px}
.inv-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:0 0 14px}
.inv-tile{display:flex;flex-direction:column;gap:6px;justify-content:flex-start;min-height:96px;padding:14px;text-decoration:none;color:inherit}
.inv-tile b{font-size:16px;line-height:1.2}.inv-tile .muted{font-size:13px}
.inv-links{font-size:14px}
.inv-count{margin:0 0 8px}
.inv-results{display:flex;flex-direction:column;gap:8px;margin:0 0 14px}
.inv-res{display:flex;gap:12px;align-items:center;padding:12px 14px;text-decoration:none;color:inherit;min-height:56px}
.inv-res.is-out .inv-res-avail b{color:var(--ink-2)}
.inv-res-main{flex:1;min-width:0}.inv-res-name{font-weight:600;overflow-wrap:anywhere}
.inv-small{font-size:13px;color:var(--ink-2)}
.inv-res-avail{text-align:right;white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end}
.inv-res-avail b{font-size:22px;font-weight:700;color:var(--pm-green-700)}.inv-res-avail span{font-size:13px;color:var(--ink-2);white-space:normal;max-width:180px;text-align:right}
.inv-badge{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);margin-left:6px;vertical-align:1px}
.inv-badge.is-ref{background:var(--warn-bg);color:var(--warn)}
.inv-h2{font-size:17px;margin:14px 0 8px}
.inv-brands{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.inv-chipgroup{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 8px}
.inv-chiplabel{font-size:12px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin-right:4px;width:100%}
.inv-chip{border:1px solid var(--line-strong);border-radius:999px;padding:6px 12px;font-size:14px;text-decoration:none;color:inherit;min-height:32px;display:inline-flex;align-items:center}
.inv-chip.is-on{background:var(--inv-accent);color:var(--inv-accent-ink);border-color:var(--inv-accent-edge)}
.inv-table td,.inv-table th{vertical-align:top}.inv-table .r{text-align:right}.inv-num{font-weight:700;color:var(--pm-green-700)}
.inv-table tr.is-out .inv-num,.inv-table tr.is-out td.r{color:var(--ink-2)}
.inv-two{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:900px){.inv-two{grid-template-columns:1.2fr 1fr}}
.inv-item-name{font-size:26px}
.inv-answer{display:flex;align-items:baseline;gap:10px;margin:6px 0 12px}
.inv-answer-q{font-size:40px;font-weight:800;color:var(--pm-green-700);font-family:var(--font-display)}.inv-answer-q.is-zero{color:var(--ink-2)}
.inv-locs{display:flex;flex-direction:column}
.inv-loc{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:10px 0;border-top:1px solid var(--line)}.inv-loc:first-child{border-top:0}
.inv-loc.is-out .inv-loc-qty:not(.is-neg){color:var(--ink-2)}
.inv-loc-site{font-weight:600}.inv-loc-site .inv-small{font-weight:400}
.inv-loc-shelf{font-size:15px}.inv-loc-shelf b{font-family:ui-monospace,Menlo,Consolas,monospace}
.inv-loc-qty{grid-row:1/3;grid-column:2;text-align:right;font-size:22px;font-weight:700;color:var(--pm-green-700)}.inv-loc-qty.is-neg{color:var(--warn)}
.inv-warn{color:var(--warn)}
.inv-kv{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;font-size:15px}.inv-kv div:nth-child(odd){color:var(--ink-2)}
.inv-fine{font-size:13px;color:var(--ink-2);border-top:1px dashed var(--line);margin-top:12px;padding-top:10px;overflow-wrap:anywhere}.inv-fine code{color:inherit}
.inv-link{background:none;border:0;padding:0;font:inherit;color:var(--pm-green-700);cursor:pointer;text-decoration:underline}
.inv-report{margin-top:10px}.inv-report summary{cursor:pointer;font-weight:600;min-height:32px}.inv-report textarea{width:100%;min-height:70px;margin:6px 0}
.inv-photo-slot{margin-top:12px;border:1px dashed var(--line);border-radius:8px;padding:10px;font-size:13px;text-align:center}
.inv-strip{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 10px;font-size:14px}.inv-strip b{font-size:20px;font-family:var(--font-display);margin-right:4px}
.inv-anchors{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 12px;font-size:14px}
.inv-inline{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.inv-inline input{max-width:200px}
.inv-stack{display:flex;flex-direction:column;gap:6px}.inv-stack input{max-width:none}
.inv-brandlist{list-style:none;padding:0;margin:0 0 10px}.inv-brandlist li{display:flex;gap:10px;align-items:center;padding:4px 0}
@media(max-width:640px){
 .inv-title{font-size:24px}.inv-item-name{font-size:22px}.inv-answer-q{font-size:34px}
 .inv-kv{grid-template-columns:110px 1fr}
 .inv-tiles{grid-template-columns:repeat(2,1fr)}
}
/* 082b: the way back, hidden tiles, the Where list, the spare-parts box */
.inv-back{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;font-size:16px;min-height:44px}
.inv-crumbs{font-size:16px;font-weight:600;margin:0 0 10px;display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;color:var(--ink-2)}
.inv-crumbs a{color:var(--pm-green-700);text-decoration:underline;text-underline-offset:2px}
.inv-crumb{display:inline-flex;align-items:center;gap:6px}.inv-crumb-sep{color:var(--ink-2);font-weight:400}
.inv-tile.is-hidden{border-style:dashed}.inv-hidden-tag{color:var(--warn)}
.inv-short{color:var(--warn)}
.inv-table tr.is-short td{background:var(--warn-bg)}
.inv-notarget,.inv-target-src{margin:0 0 8px}
.inv-box-foot{margin-top:8px}
/* 097: incoming supply stays separate from the physical count, with one visible card per PO line. */
.inv-order-total{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 7px;margin:0 0 10px;font-size:14px}
.inv-order-total>b{font-size:22px}.inv-order-total>.inv-small{flex-basis:100%}
.inv-loc-qty>.inv-small{display:block;font-weight:400;font-size:12px}
.inv-loc-order{grid-column:1/-1}.inv-order-cell{color:var(--ink-2);font-weight:600}
.inv-incoming{min-width:0;margin-top:12px;border-top:1px solid var(--line)}
.inv-incoming>p{margin:0 0 8px}
.inv-incoming-lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:8px;margin:0;padding:0;list-style:none}
.inv-incoming-line{min-width:0;border:1px solid var(--line);border-radius:var(--r-card);padding:10px 12px;background:var(--surface);overflow-wrap:anywhere}
/* 161: item usage estimator. Phone first. Colors stay on the brand tokens. */
.est-pair{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:800px){.est-pair{grid-template-columns:1fr 1fr}}
.est-bars{display:flex;align-items:flex-end;gap:2px;height:72px;overflow-x:auto;margin:8px 0}
.est-bars i{display:block;width:8px;min-height:2px;background:var(--accent);flex:0 0 auto;border-radius:2px 2px 0 0}
.est-steps{margin:0;padding-left:18px}.est-steps li{margin:0 0 6px}
.est-hits{padding-left:18px}.est-suggest{font-size:18px;margin:0 0 8px}
.est-flags{margin:8px 0;padding-left:18px;color:var(--warn)}
.est-fields{display:flex;flex-direction:column;gap:8px}.est-fields label{display:flex;flex-direction:column;gap:2px;font-size:14px;color:var(--ink-2)}
.est-fields input{font-family:var(--font-body);font-size:16px;padding:8px 10px;max-width:100%}
.est-foot{margin-top:14px}
.inv-est-card{margin:12px 0 16px}
.inv-est-inline{margin-top:10px}
.inv-est-item-cta{margin:10px 0 4px}
.est-head{margin-bottom:8px}
.est-compact-search{margin-top:6px}
.est-sites{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
.est-chip{display:inline-flex;flex-direction:column;gap:2px;padding:8px 12px;border:1px solid var(--line-strong);border-radius:8px;text-decoration:none;color:var(--ink);min-height:44px;min-width:5rem;background:var(--surface)}
.est-chip.is-on{border-color:var(--inv-accent-edge);background:var(--surface-2);font-weight:600}
.est-chip-site{font-size:15px}
.est-chip-op{font-size:12px;color:var(--ink-2)}
.est-site-fallback{margin-bottom:8px}
@media(min-width:720px){.est-site-fallback{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}}
.est-answer{border:2px solid var(--inv-accent-edge);background:var(--surface-2);margin-bottom:12px}
.est-num-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:10px 0}
@media(min-width:640px){.est-num-grid{grid-template-columns:repeat(3,1fr)}}
.est-num-value{font-size:28px;font-weight:700;line-height:1.1}
.est-num-label{font-size:13px;color:var(--ink-2)}
.est-num-was{font-size:12px;color:var(--ink-2);margin-top:4px}
.est-policy-big{font-size:22px;margin:8px 0}
.est-free{font-size:17px;margin:10px 0 0}
.est-bin-tag{font-size:11px;padding:1px 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn);margin-left:4px}
.est-arith{margin:0 0 8px}
.est-fold{margin-bottom:10px}
@media(min-width:800px){.est-fold>summary{display:none}.est-fold>.inv-kv,.est-fold>.scroll,.est-fold>p,.est-fold>div,.est-fold>ol{display:block}}
@media(max-width:799px){.est-fold>summary{cursor:pointer;font-size:17px;font-weight:600;padding:4px 0}}
.inv-incoming-part{margin-bottom:6px}.inv-incoming-part>.inv-small{display:block}
.inv-incoming-quantity{font-size:15px}.inv-incoming-date{margin-top:4px;font-size:14px}
.inv-incoming-source{border-top:1px dashed var(--line);margin-top:6px;padding-top:6px}
/* 113: a part's past. Recent purchases and the jobs it went to: the date on the left, what happened beside it. */
.inv-past{min-width:0;margin-top:12px;border-top:1px solid var(--line)}
.inv-past>p{margin:0 0 8px}
.inv-past-lines{margin:0;padding:0;list-style:none}
.inv-past-line{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:start;gap:0 12px;padding:8px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.inv-past-line:first-child{border-top:0;padding-top:0}
.inv-past-when{font-size:14px;color:var(--ink-2);white-space:nowrap}
/* A call, job or order number stays whole; the row may break around it. A very long one still wraps rather than widen the page. */
.inv-past-ref{display:inline-block;max-width:100%}
.inv-past-body{min-width:0}.inv-past-what,.inv-past-paid{font-size:15px}.inv-past-title{font-size:14px}
.inv-two>.panel{min-width:0}.inv-loc-site,.inv-loc-shelf{min-width:0;overflow-wrap:anywhere}
.inv-spb-btn{margin:6px 0 0}.inv-spb-btn.is-short{border-color:var(--warn);color:var(--warn)}
.inv-dialog{border:1px solid var(--line);border-radius:14px;padding:0;max-width:min(96vw,760px);width:100%;background:var(--surface);color:inherit}
.inv-dialog::backdrop{background:rgba(0,0,0,.45)}
.inv-dialog-body{padding:14px 16px;max-height:85vh;overflow:auto}
.inv-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.inv-dialog-head .inv-h2{margin:0}
.du-hd .inv-spb-btn{display:inline-flex}
@media(max-width:640px){
 .inv-back{width:100%;justify-content:center}
 .inv-dialog{max-width:100vw;width:100vw;margin:0;border-radius:0;max-height:100vh}
}
@media(max-width:389px){
 .inv-crumb:not(:nth-last-child(-n+2)){display:none}
 .inv-crumb:nth-last-child(2) .inv-crumb-sep{display:none}
}
/* 082c / 083b: Catalog admin class groups collapse by tile */
.inv-h3{font-size:16px;margin:14px 0 6px}.inv-h3.is-out{color:var(--ink-2)}
.inv-admin-groups{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.inv-admin-group{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.inv-admin-group.is-out{border-style:dashed}
.inv-admin-group-sum{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;min-height:48px;padding:10px 14px;font-size:16px;font-weight:600}
.inv-admin-group-sum::-webkit-details-marker{display:none}
.inv-admin-group-sum::before{content:"▸";color:var(--ink-2);font-weight:400;margin-right:2px}
.inv-admin-group[open]>.inv-admin-group-sum::before{content:"▾"}
.inv-admin-group-title{color:inherit}
.inv-admin-group-body{border-top:1px solid var(--line);padding:8px 10px 12px 28px;background:var(--surface-2)}
.inv-admin-group-body .inv-table{margin:0}
/* 083 / 083b: category icons — theme tokens that remapped on dark; larger on phone */
.inv-tile-icon{width:28px;height:28px;color:var(--pm-green-700);--pmi-icon-accent:var(--pm-gold);flex:0 0 auto}
.inv-tile-icon .inv-icon,.inv-icon{display:block;width:28px;height:28px;stroke-width:2}
.inv-tile.is-hidden .inv-tile-icon{color:var(--ink-3);--pmi-icon-accent:currentColor;opacity:.85}
.inv-filters{margin:0 0 10px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:var(--surface)}
.inv-filters>summary{cursor:pointer;font-weight:600;font-size:15px;min-height:44px;display:flex;align-items:center;list-style:none}
.inv-filters>summary::-webkit-details-marker{display:none}
.inv-filters>summary::after{content:"▸";margin-left:auto;color:var(--ink-2);font-weight:400}
.inv-filters[open]>summary::after{content:"▾"}
.inv-filters .inv-chipgroup{margin:0 0 10px}
.inv-filters .inv-chiplabel{margin-top:4px}
.inv,.inv-results{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
@media(max-width:640px){
 .inv-tile{min-height:118px;padding:12px;gap:8px}
 .inv-tile-icon{width:36px;height:36px}
 .inv-tile-icon .inv-icon{width:36px;height:36px;stroke-width:2.15}
 .inv-tile b{font-size:15px}
 .inv-admin-group-body{padding-left:16px}
 .inv-results,.inv .scroll{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
}
/* 085: scope and place, quantity with its place, exact numbers outside filters, pages, phone cards */
.inv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.inv-scope{display:inline-flex;flex-wrap:wrap;gap:4px 14px;border:0;margin:0;padding:0}
.inv-scope label,.inv-where{display:inline-flex;gap:6px;align-items:center;min-height:36px}
.inv-scope input{width:18px;height:18px}
.inv-apply{min-height:36px;font-size:14px}
.inv-browse-form{margin:0 0 10px}
.inv-res{flex-direction:column;align-items:stretch;gap:4px}
.inv-res-top{display:flex;gap:12px;align-items:center}
.inv-res-none{color:var(--ink-2);font-weight:600}
.inv-res-where{overflow-wrap:anywhere}
.inv-res-spec{margin-top:2px}
.inv-chip-n{font-size:12px;margin-left:4px}.inv-chip:not(.is-on) .inv-chip-n{color:var(--ink-2)}
.inv-exact{border:1px solid var(--line);border-radius:12px;padding:4px 12px 8px;margin:0 0 12px;background:var(--surface-2)}
.inv-exact .inv-h2{margin-top:8px}
.inv-exact-row{margin:0 0 6px}.inv-exact-row>p{margin:4px 2px 0}
.inv-pager{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px}
.inv-pager .btn{min-height:44px}
.inv-loc.is-picked{background:var(--surface-2);margin:0 -8px;padding:10px 8px;border-radius:8px}
.inv-answer-all{margin:-6px 0 10px}
.inv-type-tile{border-style:solid}
@media(max-width:640px){
 /* 085c: a search card gives the part the whole width; its quantity and place sit together on the line below it,
    the way the type list's phone cards put stock under the name. */
 .inv-res-top{flex-direction:column;align-items:stretch;gap:6px}
 .inv-res-avail{flex-direction:row;align-items:baseline;gap:6px;text-align:left;white-space:normal}
 .inv-res-avail span{max-width:none;text-align:left;flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
 /* The class table becomes one card per part: name, then quantity with its place, then any read values. */
 .inv .scroll:has(.inv-cardtable){overflow-x:visible}
 .inv-cardtable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .inv-cardtable,.inv-cardtable tbody{display:block;width:100%}
 .inv-cardtable tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 4px;border-bottom:1px solid var(--line)}
 .inv-cardtable td{display:block;border:0;padding:0}
 .inv-cardtable td.inv-part{grid-column:1/2;overflow-wrap:anywhere}
 .inv-cardtable td.inv-avail{grid-column:2;grid-row:1;font-size:20px;text-align:right}
 .inv-cardtable td.inv-wherecell{grid-column:1/3}
 .inv-cardtable td.inv-spec{grid-column:1/3;font-size:13px}
 .inv-cardtable td.inv-spec::before{content:attr(data-label) ": ";color:var(--ink-2)}
 .inv-cardtable td[colspan]{grid-column:1/3}
}
/* 085 phase 1: part types — reviewed values plain, unreviewed marked, review controls for catalog administrators */
.inv-typenote{margin:0 0 10px}
.inv-cand-tag{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;border:1px dashed var(--line);color:var(--ink-2);margin-left:4px;vertical-align:1px;white-space:nowrap}
.inv-typeline{color:inherit}
.inv-typeline .inv-cand-tag{white-space:normal;max-width:100%;overflow-wrap:anywhere;border-radius:10px}   /* 085c: a tag naming several values wraps inside the card */
.is-cand{font-style:italic}.is-recheck{color:var(--warn)}.is-conflict{color:var(--warn);font-weight:600}.is-none{color:var(--ink-2)}
.inv-mark{color:var(--ink-2);font-style:normal;margin-left:1px}
.inv-typebox{margin:0 0 12px;padding:0 0 10px;border-bottom:1px dashed var(--line)}.inv-typebox p{margin:0 0 8px}
.inv-maybe{border:1px dashed var(--line);border-radius:12px;padding:4px 12px 8px;margin:10px 0}
.inv-history{margin:0;padding-left:18px;font-size:14px}.inv-history li{margin:4px 0;overflow-wrap:anywhere}
.inv-review .inv-inline input[name="value"]{max-width:120px}
.inv-review table td{overflow-wrap:anywhere}
@media(max-width:640px){.inv-cardtable td.inv-spec.is-none{display:none}}   /* a phone card lists only the fields that say something */
/* 085d: sort, chips that narrow the list, the chosen values, the group with no value to sort by, updates in place */
.inv-sort{display:inline-flex;gap:6px;align-items:center;min-height:36px}
.inv-sort select{max-width:100%;min-width:0;min-height:36px}   /* 085i: a long order name ("Control range lower bound (PSI or PSIG), high to low") shrinks to the phone, never widens the page */
.inv-mode{margin:0 0 8px}
.inv-facets{margin:0 0 10px}
.inv-facets .inv-chipgroup{margin:0 0 10px}
.inv-more{margin:0 0 10px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:var(--surface)}
.inv-more>summary{cursor:pointer;font-weight:600;font-size:15px;min-height:44px;display:flex;align-items:center}
.inv-choices{margin:0 0 10px}.inv-choices>p{margin:0 0 6px}
.inv-choice-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.inv-clear{min-height:32px;display:inline-flex;align-items:center;padding:0 6px}
.inv-chip{max-width:100%;overflow-wrap:anywhere}
.inv-chip:focus-visible,.inv-clear:focus-visible,.inv-more>summary:focus-visible{outline:3px solid var(--pm-green-700);outline-offset:2px}
.inv-chip.is-choosing{outline:2px dashed currentColor;outline-offset:1px}
.inv-sortgap td{font-size:13px;color:var(--ink-2);background:var(--surface-2);font-style:italic}
.inv-browse.is-pending{opacity:.6;transition:opacity .15s .1s}
@media(max-width:640px){.inv-sort{width:100%}.inv-sort select{flex:1}.inv-chip,.inv-clear{min-height:40px}}
.inv-chip-mark{margin-right:5px}.inv-chip-x{margin-left:8px}
/* 085e: a wide table's scroll box holds its screen-reader text too (absolutely placed), so it scrolls with the table and never widens the page */
.inv .scroll{position:relative}
/* 085f: a chip row with many values (about 100 pressure wordings) scrolls inside its own box; the find panel; capacity */
.inv-facets .inv-chipgroup.is-long{max-height:9.5em;overflow-y:auto;padding:2px;border:1px solid var(--line);border-radius:10px}
.inv-specified{margin:0 0 12px;padding:12px 14px}
.inv-specform{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;margin:0 0 6px}
.inv-specform label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600;min-width:0;flex:1 1 12em}
.inv-specform input{font-size:16px;padding:10px 12px;border-radius:10px;min-width:0;width:100%;box-sizing:border-box}
.inv-specform .btn{min-height:44px}
.inv-speclist{list-style:none;margin:8px 0;padding:0}
.inv-specitem{padding:8px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.inv-specitem .inv-spechead{margin:0 0 2px}
.inv-specwhy{margin:4px 0 0;padding-left:18px}
.inv-capmin{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 6px}
.inv-capmin input{font-size:16px;padding:8px 10px;border-radius:10px;width:8em;max-width:100%}
.inv-capmin .btn{min-height:44px}
.inv-capnote{margin:0 0 10px}
/* 085g: one Find a part journey: the specified-part fields beside the words, the specifications mode, number matches, part kinds */
.inv-specfind{margin:8px 0 0;font-size:14px}
.inv-specfind>summary{cursor:pointer;min-height:36px;display:flex;align-items:center;color:var(--ink);font-weight:600}
.inv-specfind>summary:focus-visible{outline:3px solid var(--pm-green-700);outline-offset:2px}
.inv-specfields{display:flex;flex-wrap:wrap;gap:8px 12px;margin:6px 0 4px}
.inv-specfields label{display:flex;flex-direction:column;gap:4px;font-weight:600;min-width:0;flex:1 1 12em}
.inv-specfields input{font-size:16px;padding:10px 12px;border-radius:10px;min-width:0;width:100%;box-sizing:border-box}
.inv-specmode legend{padding:0;margin-right:4px;float:left;line-height:36px}
.inv-match{margin:4px 0 2px;overflow-wrap:anywhere}
.inv-idnote{margin:0 0 8px}
.inv-kinds{margin:0 0 12px}.inv-kinds>h2{display:block;margin:0 0 6px}
.inv-kinds .inv-chipgroup{display:flex;flex-wrap:wrap;gap:6px}
.inv-kinds>p{margin:6px 0 0}
.inv-others{margin:16px 0 0;border-top:1px solid var(--line);padding-top:8px}
.inv-segs{display:inline-flex;flex-wrap:wrap;align-items:center;gap:0;margin:0 6px 4px 0;vertical-align:middle}
.inv-seglabel{margin-right:8px;font-weight:600}
.inv-seg{border:1px solid var(--line-strong);padding:6px 12px;min-height:32px;display:inline-flex;align-items:center;text-decoration:none;color:inherit;font-size:14px}
.inv-seg+.inv-seg{border-left:0}
.inv-segs .inv-seg:first-of-type{border-radius:999px 0 0 999px}.inv-segs .inv-seg:last-of-type{border-radius:0 999px 999px 0}
.inv-seg.is-on{background:var(--inv-accent);color:var(--inv-accent-ink);border-color:var(--inv-accent-edge)}
.inv-seg:focus-visible{outline:3px solid var(--pm-green-700);outline-offset:2px}
.inv-qline{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:0 0 10px}
.inv-words{display:inline-flex;gap:6px;align-items:center;min-height:36px;flex:1 1 14em;min-width:0}
.inv-words input{font-size:16px;padding:6px 10px;border-radius:8px;min-width:0;width:100%;box-sizing:border-box}
.inv-specdesc{margin:10px 0 0}
@media(max-width:640px){.inv-seg{min-height:40px}.inv-words{width:100%}}
/* 085h: fast browsing. One toolbar, two disclosures, the filters in one box (beside the results on a very wide screen,
   above them otherwise), long rows shortened with Show all, and the parts on the first screen. */
.inv-toolbar{margin:0 0 6px}
.inv-toolbar .inv-opts{margin-top:0;gap:6px 14px}
.inv-toolbar .inv-words{flex:1 1 16em;min-width:0;max-width:26em}
.inv-toolbar .inv-sort select{max-width:22em}
.inv-toolbar .inv-where select{max-width:14em}
.inv-toolrow{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:flex-start;margin:0 0 8px}
.inv-toolrow>.inv-mode{margin:0;flex:1 1 20em;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.inv-toolrow>.inv-specified-wrap,.inv-toolrow>.inv-about{flex:0 0 auto}
.inv-toolrow>.inv-specified-wrap:has(details[open]),.inv-toolrow>.inv-about[open]{flex-basis:100%}
.inv-specified-wrap{margin:0}
.inv-specified-wrap>.inv-specified{margin:0;padding:0 12px}
.inv-specified>summary,.inv-about>summary,.inv-capbox>summary,.inv-filterbox>summary,.inv-morevals>summary{cursor:pointer;min-height:40px;display:flex;align-items:center;font-weight:600;font-size:14px;color:var(--ink)}
.inv-specified>summary .inv-h2{margin:0;font-size:14px;font-weight:600}
.inv-specified>summary,.inv-about>summary,.inv-capbox>summary,.inv-filterbox>summary,.inv-more>summary{list-style:none;gap:6px}
.inv-specified>summary::-webkit-details-marker,.inv-about>summary::-webkit-details-marker,.inv-capbox>summary::-webkit-details-marker,.inv-filterbox>summary::-webkit-details-marker,.inv-more>summary::-webkit-details-marker{display:none}
.inv-specified>summary::before,.inv-about>summary::before,.inv-capbox>summary::before,.inv-filterbox>summary::before,.inv-more>summary::before{content:"▸";color:var(--ink-2);font-weight:400;width:.8em}   /* 085h: every disclosure shows it opens */
.inv-specified[open]>summary::before,.inv-about[open]>summary::before,.inv-capbox[open]>summary::before,.inv-filterbox[open]>summary::before,.inv-more[open]>summary::before{content:"▾"}
.inv-specified[open]{padding-bottom:10px}
.inv-about{border:1px solid var(--line);border-radius:12px;padding:0 12px;background:var(--surface)}
.inv-about[open]{padding-bottom:6px}
.inv-aboutbody p{margin:0 0 8px}
.inv-browse-grid{display:block}
.inv-filterbox{margin:0 0 8px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:var(--surface)}
.inv-filterbox>.inv-facets{margin:6px 0 6px}
.inv-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16em),1fr));gap:0 24px;align-items:start}
.inv-groups>.inv-chipgroup:has(.inv-morevals[open]){grid-column:1/-1}
.inv-facetfoot{display:flex;flex-wrap:wrap;gap:0 18px;align-items:flex-start}
.inv-facetfoot>details{flex:0 0 auto}.inv-facetfoot>details[open]{flex:1 1 100%}
.inv-choice-row .inv-allkinds{margin-left:4px}
.inv-facetfoot>.inv-more{border:0;padding:0;background:none;margin:0 0 6px}
@media(min-width:761px){.inv-filterbox[open]>summary.inv-filtersum{display:none}}   /* closed (Hide filters, or a phone turned sideways), its heading opens it */
.inv-hidefilters{margin-left:auto;min-height:34px;padding:0 10px;border:0;background:none;color:var(--ink);font:inherit;font-size:14px;font-weight:600;text-decoration:underline;cursor:pointer}
.inv-hidefilters:focus-visible{outline:3px solid var(--pm-green-700);outline-offset:2px}
.inv-facets>.inv-hidefilters{display:block;margin:0 0 6px auto}
@media(max-width:760px){.inv-filterbox .inv-hidefilters{display:none}}
.inv-filterbox .inv-chipgroup{margin:0 0 8px}
.inv-chiphint{font-size:12px;color:var(--ink-2);text-transform:none;letter-spacing:0;margin-left:6px}
.inv-chiplabel .inv-chiphint::before{content:"· "}
.inv-valfind{flex:1 1 100%;max-width:18em;font-size:14px;padding:6px 10px;border-radius:8px}
.inv-morevals{flex:0 0 auto}.inv-morevals[open]{flex-basis:100%}.inv-morevals-body{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.inv-morevals>summary{display:inline-flex;min-height:32px;padding:0 8px;border:1px dashed var(--line);border-radius:999px;font-weight:600;font-size:13px}
.inv-morevals[open]>summary{border-style:solid}
.inv-subchips{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:2px 0 0 12px;padding-left:10px;border-left:3px solid var(--line)}
.inv-capbox{margin:0 0 8px}
.inv-capbox .inv-capnote{margin:0 0 8px}
.inv-facetnote{margin:0 0 6px}
.inv-matchpos{color:var(--ink);font-weight:600}
.inv-legend{margin:8px 0 0}
.inv-countrow{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;justify-content:space-between;margin:0 0 6px}
.inv-countrow>.inv-count{margin:0;flex:1 1 20em}
.inv-countrow .inv-sort select{max-width:22em}
.inv-modeword{white-space:nowrap}
.inv-toolrow .inv-segs{margin:0}
.inv-cardtable th{line-height:1.25}
@media(min-width:641px){
 .inv-cardtable th{white-space:normal;vertical-align:bottom}
 .inv-cardtable th,.inv-cardtable td{padding:8px 10px}
 .inv-cardtable td.inv-part{min-width:14em}
 .inv-cardtable td.inv-wherecell{min-width:8em}
}
.inv-specified>summary:focus-visible,.inv-about>summary:focus-visible,.inv-capbox>summary:focus-visible,.inv-filterbox>summary:focus-visible,.inv-morevals>summary:focus-visible{outline:3px solid var(--pm-green-700);outline-offset:2px}
@media(min-width:1500px){
 .inv-browse-grid{display:grid;grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:16px;align-items:start}
 .inv-filterbox{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto}
}
@media(max-width:640px){
 .inv-toolbar .inv-words{flex-basis:100%;max-width:none}
 .inv-specified>summary,.inv-about>summary,.inv-capbox>summary,.inv-filterbox>summary{min-height:44px}
 .inv-morevals>summary{min-height:40px}
}
@media(min-width:761px){.inv-facetfoot>details>summary{min-height:34px}.inv-filterbox .inv-groups>.inv-chipgroup{margin-bottom:6px}}
@media(max-width:640px){.inv-specified>summary::before,.inv-about>summary::before{content:none}.inv-toolrow{gap:6px 8px}.inv-specified-wrap>.inv-specified,.inv-about{padding:0 10px}}

/* ---- 085h visual fix: one restrained theme -------------------------------------------------------------------------
   Every color above is a portal theme token (--surface, --surface-2, --canvas, --line, --line-strong, --ink, --ink-2,
   --ink-3, --warn, --pm-green-700), so light and dark (system or chosen) read as one theme. Inventory adds only the
   accent for selected and primary controls, and the edge of a field, in both themes. */
.inv{--inv-accent:var(--pm-green-700);--inv-accent-ink:#FFFFFF;--inv-accent-edge:var(--pm-green-700);--inv-accent-hover:var(--pm-green-600);--inv-field-edge:var(--ink-3);color-scheme:light}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .inv{--inv-accent:#1E5443;--inv-accent-ink:var(--ink);--inv-accent-edge:var(--pm-green-700);--inv-accent-hover:#235C4A;color-scheme:dark}}
:root[data-theme="dark"] .inv{--inv-accent:#1E5443;--inv-accent-ink:var(--ink);--inv-accent-edge:var(--pm-green-700);--inv-accent-hover:#235C4A;color-scheme:dark}
/* Back is a way out, not the main action: a quiet secondary control, still full width on a phone with a 44px target. */
.inv .inv-back{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong)}
.inv .inv-back:hover{background:var(--surface-2)}
.inv .inv-back:focus-visible{outline:3px solid var(--pm-green-700);outline-offset:2px}
/* Inventory's primary actions: the accent pair (the portal's shared primary is white on mint in dark mode). */
.inv .btn-primary{background:var(--inv-accent);color:var(--inv-accent-ink);border-color:var(--inv-accent-edge)}
.inv .btn-primary:hover{background:var(--inv-accent-hover)}
.inv .btn-ghost{color:var(--ink)}
/* Native fields and selects: the theme's surface, ink and a visible edge; the browser draws its parts (the select's
   arrow and list, the radio) in the same scheme. */
.inv input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),.inv select,.inv textarea{background:var(--surface);color:var(--ink);border:1px solid var(--inv-field-edge)}
.inv select{border-radius:6px;padding:4px 6px}
.inv input::placeholder,.inv textarea::placeholder{color:var(--ink-2);opacity:1}
.inv input[type="radio"],.inv input[type="checkbox"]{accent-color:var(--inv-accent-edge)}
.inv input:focus-visible,.inv select:focus-visible,.inv textarea:focus-visible{outline:3px solid var(--pm-green-700);outline-offset:1px}
/* No Inventory text is faded with opacity: a part that is out of stock or hidden says so in words, with full-strength ink.
   Focus is a green ring inside Inventory (the portal's gold ring is under 3:1 on a light page). */
:where(.inv) :where(a,button,[tabindex]):focus-visible{outline:3px solid var(--pm-green-700);outline-offset:2px}
body:has(.inv) .mobile-app-nav .fb-in-nav:focus-visible{outline:2px solid var(--pm-green-700)}
.inv-admin-group-sum:focus-visible{outline:3px solid var(--pm-green-700);outline-offset:-3px}
/* Pick lists (task 098). The add control sits under a result card, in normal flow, so the card's quantity stays uncovered. */
.inv-pick-row{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;max-width:100%}
.inv-pick-add,.inv-pick-qty{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0;max-width:100%}
.inv-pick-add .btn,.inv-pick-qty .btn,.inv-pick-save .btn{white-space:normal;max-width:100%;min-width:0;min-height:44px;overflow-wrap:anywhere}
.inv-pick-add input,.inv-pick-qty input,.inv-pick-fields input,.inv-pick-fields select{width:6rem;max-width:100%;min-width:0;min-height:44px}
.inv-pick-fields input,.inv-pick-fields select{width:100%}
.inv-pick-fields{display:grid;grid-template-columns:1fr;gap:8px}
.inv-pick-fields label{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:14px}
.inv-pick-fields input,.inv-pick-fields select{width:100%;max-width:100%;min-width:0}
@media(min-width:720px){.inv-pick-fields{grid-template-columns:1fr 1fr}}
.inv-pick-group{margin:0 0 8px}
.inv-pick-line h3{margin:0 0 4px;font-size:18px}
.inv-pick-line p{margin:0 0 6px}
.inv-short{color:var(--warn);font-weight:600}
.inv-pick-line.is-short{border-color:var(--warn)}
/* Scanner plates stay black on white in dark mode. A theme token would invert the symbol. */
.inv-bc-wrap,.inv-qr-wrap{background:#fff;border:1px solid #111;padding:8px;max-width:100%;overflow:hidden}
.inv-qr-wrap{display:inline-block}
.inv-bc{display:block;width:100%;max-width:280px;height:70px;background:#fff}
.inv-qr{display:block;width:168px;max-width:100%;height:auto;aspect-ratio:1;background:#fff}
.inv-bc-num{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;text-align:center;color:#000;background:#fff;margin:4px 0 0;overflow-wrap:anywhere}
@media(max-width:640px){
 .inv-pick-add,.inv-pick-qty{flex-direction:column;align-items:stretch}
 .inv-pick-add .btn,.inv-pick-qty .btn{flex:1 1 auto;width:100%}
}
@media print{
 body:has(.inv-pick-sheet) .rail,
 body:has(.inv-pick-sheet) .topbar,
 body:has(.inv-pick-sheet) .brandbox,
 body:has(.inv-pick-sheet) .nav-toggle,
 body:has(.inv-pick-sheet) .nav-backdrop,
 body:has(.inv-pick-sheet) .mobile-app-nav,
 body:has(.inv-pick-sheet) .menubtn,
 body:has(.inv-pick-sheet) .inv-back,
 body:has(.inv-pick-sheet) .inv-crumbs,
 body:has(.inv-pick-sheet) form,
 body:has(.inv-pick-sheet) .askbox,
 body:has(.inv-pick-sheet) .ask-toggle,
 body:has(.inv-pick-sheet) .askbtn,
 body:has(.inv-pick-sheet) .inv-pick-tools,
 body:has(.inv-pick-sheet) .qc-bar{display:none !important}
 body:has(.inv-pick-sheet){print-color-adjust:exact;-webkit-print-color-adjust:exact}
 body:has(.inv-pick-sheet) .inv-bc-wrap,body:has(.inv-pick-sheet) .inv-qr-wrap,body:has(.inv-pick-sheet) .inv-bc,body:has(.inv-pick-sheet) .inv-qr,body:has(.inv-pick-sheet) .inv-bc-num{background:#fff;color:#000}
 body:has(.inv-pick-sheet) .inv-pick-group,body:has(.inv-pick-sheet) .inv-pick-line{break-inside:avoid}
}
/* 107b literature. Tokens only. The photo slot above this block is unchanged. */
.inv-lit{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
.inv-lit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.inv-lit-doc{border:1px solid var(--line);border-radius:8px;padding:8px 10px;overflow-wrap:anywhere}
.inv-lit-badge{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn);margin-left:6px}
.inv-lit-na{font-size:14px;color:var(--ink-2);overflow-wrap:anywhere}
.inv-lit-flag{margin-top:6px}
.inv-lit-flag input{width:100%;max-width:none;margin:4px 0}
