/* 웹콘솔 자재 현황(/ants/materials)·자재 설정 — store.css 의 st-* 와 ants_line.css 의 al-* 위에 얹는다. #ants-stock 은 스캔마다 방송으로 갈아 끼운다 */
.as-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; margin: 8px 0 4px; }
.as-kpi { border: 1px solid #ddd; border-top: 3px solid #1a1a1a; background: #fff; padding: 10px 14px; display: grid; gap: 2px; }
.as-kpi b { font-size: 26px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.as-kpi span { font-size: 12px; color: #666; }
.as-kpi.is-alert { border-top-color: #C2401F; }
.as-kpi.is-alert b { color: #C2401F; }

/* 공정별 통과 — 번호 상자를 단 카드가 순서대로 흐른다 */
.as-flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.as-step { display: grid; grid-template-columns: 22px 1fr; grid-template-areas: "no name" "no count" "no lt"; gap: 0 8px;
  border: 1px solid #ddd; border-left: 3px solid #2e7d32; background: #fff; padding: 8px 10px; min-width: 0; }
.as-step.is-empty { border-left-color: #ccc; }
.as-step.is-hit { animation: as-hit 2.4s ease-out; }
.as-no { grid-area: no; width: 22px; height: 22px; box-sizing: border-box; border: 1.5px solid #1a1a1a; text-align: center; font-size: 12px; line-height: 19px; font-weight: 700; }
.as-name { grid-area: name; font-size: 13px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.as-count { grid-area: count; font-size: 22px; font-variant-numeric: tabular-nums; }
.as-step.is-empty .as-count { color: #bbb; }
.as-lt { grid-area: lt; font-size: 11px; color: #888; }
@keyframes as-hit { 0% { background: #fff3c4; } 100% { background: #fff; } }

/* 자재 잔량 표 */
.as-r { text-align: right !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
.as-group { font-size: 11px; color: #777; border: 1px solid #ddd; padding: 0 5px; border-radius: 3px; white-space: nowrap; }
.as-table tr.is-low .as-left { color: #b26a00; font-weight: 700; }
.as-table tr.is-short .as-left { color: #C2401F; font-weight: 700; }
.as-table tr.is-short td:first-child { box-shadow: inset 3px 0 #C2401F; }
.as-table tr.is-hit td, .as-scans tr.is-hit td { animation: as-hit 2.4s ease-out; }
.as-warn { font-size: 12px; color: #b26a00; margin-left: 4px; }
.as-scans code { font-size: 13px; }

/* 입고 · 설정 */
.as-tools { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; }
.as-receive { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.as-receive select, .as-receive input { font: inherit; font-size: 15px; padding: 8px; border: 1px solid #bbb; max-width: 100%; }
.as-receive input { width: 8em; }
.as-tool-links { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; font-size: 14px; }
.as-tool-links form { margin: 0; }
.as-setup input, .as-setup select { font: inherit; font-size: 14px; padding: 5px 6px; border: 1px solid #bbb; max-width: 100%; box-sizing: border-box; }
.as-setup .as-num { width: 7em; text-align: right; }
.as-setup td { padding: 4px; vertical-align: middle; }
