/* H17 Inventory — 20s loop: job completes → material deducted, low-stock flip → reorder from menu → PO sent → delivery scanned in → back in stock (needs hero-graphics.css shell) */
.rcg .h17{--t:20s}
.rcg .h17 .flt{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.rcg .h17 .flt .srch{width:120px;white-space:nowrap}
.rcg .h17 .flt .stats{margin-left:auto;display:flex;gap:6px}
.rcg .h17 .stat .sw{display:inline-grid}.rcg .h17 .stat .sw>*{grid-area:1/1;white-space:nowrap}
.rcg .h17 .stat .sw .a{animation:ivsa var(--t) step-end infinite}.rcg .h17 .stat .sw .b{opacity:0;animation:ivsb var(--t) step-end infinite}.rcg .h17 .stat .sw .c{opacity:0;animation:ivsc var(--t) step-end infinite}
.rcg .h17 .stat.low .sw .a{animation-name:ivsa}.rcg .h17 .stat.low .sw .b{animation-name:ivlow}
.rcg .h17 .stat.out .sw .a{animation-name:ivouta}.rcg .h17 .stat.out .sw .b{animation-name:ivoutb}
@keyframes ivsa{0%,13%{opacity:1}13.01%,100%{opacity:0}}
@keyframes ivsb{0%,13%{opacity:0}13.01%,64%{opacity:1}64.01%,100%{opacity:0}}
@keyframes ivsc{0%,64%{opacity:0}64.01%,100%{opacity:1}}
@keyframes ivlow{0%,13%{opacity:0}13.01%,100%{opacity:1}}
@keyframes ivouta{0%,64%{opacity:1}64.01%,100%{opacity:0}}
@keyframes ivoutb{0%,64%{opacity:0}64.01%,100%{opacity:1}}
.rcg .h17 .stat i{width:12px;height:12px;border-radius:3px;background:var(--g-hi,#f3f4f6);display:inline-block}
.rcg .h17 .stat.low i{background:var(--g-otint,#fffbeb);border:1px solid var(--g-oline,#fde68a)}.rcg .h17 .stat.out i{background:var(--g-rtint,#fef2f2);border:1px solid var(--g-rline,#fecaca)}
.rcg .h17 .stat b.or{color:var(--org)}.rcg .h17 .stat b.rd{color:var(--red)}
/* table */
.rcg .h17 .tbl .hd,.rcg .h17 .tbl .row{grid-template-columns:14px minmax(0,1fr) 62px 66px 72px 72px 76px 82px 14px;gap:8px}
.rcg .h17 .tbl .hd{padding:0 8px 7px}.rcg .h17 .tbl .row{padding:0 8px;height:46px}
.rcg .h17 .row::before{content:"";position:absolute;inset:0;border-radius:6px;background:var(--g-bluetint,rgba(27,100,243,.07));opacity:0;pointer-events:none}
.rcg .h17 .row.r1::before{animation:ivfl1 var(--t) ease-out infinite}.rcg .h17 .row.r2::before{animation:ivfl2 var(--t) ease-out infinite}
@keyframes ivfl2{0%,10.5%{opacity:0}12%,15%{opacity:1}22%,100%{opacity:0}}
@keyframes ivfl1{0%,62.5%{opacity:0}64%,67%{opacity:1}74%,100%{opacity:0}}
.rcg .h17 .row>*{position:relative}
.rcg .h17 .cb{width:12px;height:12px;border:1.5px solid var(--g-mute3,#d1d5db);border-radius:3px}
.rcg .h17 .br{font-size:9px;font-weight:800;letter-spacing:-.01em;white-space:nowrap}.rcg .h17 .br.m3{color:#e11d2e}.rcg .h17 .br.av{color:#c8102e}.rcg .h17 .br.kp{color:var(--g-ink2,#3a3f4b);border:1px solid currentColor;padding:1px 3px;border-radius:2px;font-size:7.5px;width:max-content}.rcg .h17 .br.xp{font-style:italic;letter-spacing:.04em}
.rcg .h17 .num{font-weight:600}.rcg .h17 .num small,.rcg .h17 .q small{display:block;font-size:8px;color:var(--g-mute,#6b7280);font-weight:400;margin-top:2px}
.rcg .h17 .q{font-weight:600}
.rcg .h17 .val{font-weight:700;color:var(--grn)}.rcg .h17 .val.z{color:var(--g-mute,#6b7280)}
.rcg .h17 .kb{width:3px;height:14px;display:grid;gap:2px;justify-self:center}.rcg .h17 .kb::before,.rcg .h17 .kb::after,.rcg .h17 .kb i{content:"";display:block;width:3px;height:3px;border-radius:50%;background:var(--g-mute2,#9aa0ab)}
/* swaps */
.rcg .h17 .sw{display:inline-grid;align-items:center}.rcg .h17 .sw>*{grid-area:1/1;white-space:nowrap}.rcg .h17 .sw .b,.rcg .h17 .sw .c{opacity:0}
.rcg .h17 .r2 .q .a,.rcg .h17 .r2 .val .a{animation:ivsa var(--t) step-end infinite}.rcg .h17 .r2 .q .b,.rcg .h17 .r2 .val .b{animation:ivlow var(--t) step-end infinite}
.rcg .h17 .r2 .stw .a{animation:ivsa var(--t) step-end infinite}.rcg .h17 .r2 .stw .b{animation:ivlow var(--t) step-end infinite}
.rcg .h17 .r1 .q .a,.rcg .h17 .r1 .val .a,.rcg .h17 .r1 .stw .a,.rcg .h17 .r1 .upd .a{animation:ivouta var(--t) step-end infinite}.rcg .h17 .r1 .q .b,.rcg .h17 .r1 .val .b,.rcg .h17 .r1 .stw .b,.rcg .h17 .r1 .upd .b{animation:ivoutb var(--t) step-end infinite}
.rcg .h17 .r2 .upd .a{animation:ivsa var(--t) step-end infinite}.rcg .h17 .r2 .upd .b{animation:ivlow var(--t) step-end infinite}
.rcg .h17 .row .b.pop-in{animation-timing-function:step-end}
/* pulse ring on changed qty */
.rcg .h17 .ring{position:absolute;left:-6px;top:-4px;right:-6px;bottom:-4px;border-radius:6px;border:1.5px solid var(--blue);opacity:0}
.rcg .h17 .r2 .ring{animation:ivring2 var(--t) ease-out infinite}.rcg .h17 .r1 .ring{animation:ivring1 var(--t) ease-out infinite}
@keyframes ivring2{0%,12%{opacity:0;transform:scale(1)}12.5%{opacity:1}16%{opacity:0;transform:scale(1.15)}100%{opacity:0}}
@keyframes ivring1{0%,64%{opacity:0;transform:scale(1)}64.5%{opacity:1}68%{opacity:0;transform:scale(1.15)}100%{opacity:0}}
/* row menu */
.rcg .h17 .menu{left:592px;top:158px;width:186px;padding:6px;display:grid;gap:1px;opacity:0;transform:scale(.92);transform-origin:100% 0;animation:ivmenu var(--t) cubic-bezier(.2,.9,.3,1.2) infinite}
@keyframes ivmenu{0%,35.75%{opacity:0;transform:scale(.92)}37%,45.5%{opacity:1;transform:none}46%,100%{opacity:0;transform:scale(.96)}}
.rcg .h17 .menu span{display:flex;align-items:center;gap:8px;height:24px;padding:0 8px;border-radius:5px;font-size:9.5px;font-weight:600;color:var(--g-ink2,#3a3f4b)}
.rcg .h17 .menu span i{width:12px;height:12px;border-radius:3px;background:var(--g-hi,#f3f4f6);flex:none}
.rcg .h17 .menu .ro{animation:ivmhov var(--t) step-end infinite}.rcg .h17 .menu .ro i{background:var(--g-bluetint,rgba(27,100,243,.12))}
@keyframes ivmhov{0%,42%{background:transparent;color:var(--g-ink2,#3a3f4b)}42.01%,100%{background:var(--g-bluetint,rgba(27,100,243,.08));color:var(--blue)}}
/* cursor */
.rcg .h17 .cur{animation:ivcur var(--t) cubic-bezier(.3,.7,.3,1) infinite}
@keyframes ivcur{0%,25%{opacity:0;left:640px;top:330px}32.5%{opacity:1;left:764px;top:150px}35%{left:764px;top:150px;transform:scale(1)}35.4%{transform:scale(.8)}35.8%{transform:scale(1)}36.5%,37.5%{left:764px;top:150px}42.5%{left:660px;top:196px}45%{left:660px;top:196px;transform:scale(1)}45.4%{transform:scale(.8)}45.8%{transform:scale(1)}47%{opacity:1;left:660px;top:196px}49%,100%{opacity:0;left:660px;top:196px}}
/* toasts */
.rcg .h17 .toast.tA{animation:ivt1 var(--t) ease-out infinite}.rcg .h17 .toast.tB{animation:ivt2 var(--t) ease-out infinite}.rcg .h17 .toast.tC{animation:ivt3 var(--t) ease-out infinite}
@keyframes ivt1{0%,10%{opacity:0;transform:translateY(8px)}11%,23.5%{opacity:1;transform:none}25%,100%{opacity:0}}
@keyframes ivt2{0%,46%{opacity:0;transform:translateY(8px)}47%,57%{opacity:1;transform:none}58.5%,100%{opacity:0}}
@keyframes ivt3{0%,62%{opacity:0;transform:translateY(8px)}63%,75%{opacity:1;transform:none}76.5%,100%{opacity:0}}
.rcg .h17 .toast .ok.o{background:var(--org)}
