/* Halaman persediaan di atas lembar halaman template (stock-levels.css, stock-transfers.css,
   reconciliation.css). File ini hanya menyambungkan nilai yang di template ditulis lewat style
   inline oleh skripnya: warna seri (kelas tone-series-N), panjang batang (share-N), dan letak tanda
   batas minimum (target-N). Selebihnya tautan dan isian yang di template berupa tombol.
   Warna hanya dari token --basalt-*, tanpa gaya inline dan tanpa !important. */

/* Warna seri ubin produk, lokasi, dan titik rute. */
.whs-tile[class*="tone-"],
.whs-site[class*="tone-"] {
	--whs-tone: var(--tone);
}
.stx-place[class*="tone-"] {
	--stx-site: var(--tone);
}
/* Lokasi virtual (supplier, customer, produksi, penyesuaian) bertitik abu-abu. */
.stx-place-virtual {
	--stx-site: var(--basalt-copy-faint);
}

/* Batang tersedia dan tanda batas minimumnya. */
.whs-meter-fill,
.whs-rank-fill {
	width: var(--share, 0%);
}
.whs-rank-mark {
	left: calc(var(--target, 0) * 1%);
}
.whs-meter-free .whs-meter-mark {
	display: none;
}
.hire-meter span {
	width: var(--share, 0%);
}

/* Satuan di belakang angka: lebih tipis dari angkanya. */
.whs-unit {
	font-weight: 400;
	font-size: 0.8rem;
	color: var(--whs-quiet);
}

/* Header urut dan baris lokasi di sini tautan, bukan tombol. */
a.whs-sort,
a.whs-site {
	text-decoration: none;
}
a.whs-site:hover {
	color: var(--basalt-copy);
}

/* Toolbar daftar stok adalah satu formulir GET; formulirnya tidak menambah jarak. */
.whs-toolbar-form {
	display: contents;
}
.whs-pager {
	padding: 0.85rem var(--basalt-pad-x);
	border-top: 1px solid var(--whs-line);

	& .basalt-pager {
		margin: 0;
	}

	@container (max-width: 760px) {
		padding-left: var(--basalt-pad-x-narrow);
		padding-right: var(--basalt-pad-x-narrow);
	}
}
.whs-empty {
	padding: 2.5rem var(--basalt-pad-x);
}
.whs-restock-more {
	margin: 0.75rem 0 0;
	font-size: 0.8rem;
	color: var(--whs-quiet);
}

/* Panel samping yang isinya dimuat dari server: kerangka tenang selama menunggu. */
.whs-drawer-loading {
	display: grid;
	place-items: center;
	min-height: 12rem;
	color: var(--whs-quiet);
}

/* Daftar stock move: tab berupa tautan, jadi garis bawahnya dihapus. */
.stx-tabs .basalt-tabs-list > a.nav-link {
	text-decoration: none;
}
.stx-toolbar-form {
	display: contents;
}
.stx-filter {
	flex: 0 0 auto;
}
.stx-doc {
	font-weight: 600;
	text-decoration: none;
	color: var(--stx-link);

	&:hover {
		text-decoration: underline;
		color: var(--basalt-copy);
	}
}
.stx-in {
	color: color-mix(in srgb, var(--basalt-success) 58%, var(--basalt-copy));
}
.stx-pager {
	padding: 0.85rem var(--basalt-pad-x);
	border-top: 1px solid var(--stx-line);

	& .basalt-pager {
		margin: 0;
	}

	@media (max-width: 575.98px) {
		padding-left: var(--basalt-pad-x-narrow);
		padding-right: var(--basalt-pad-x-narrow);
	}
}

/* Kartu stok: angka masuk hijau, keluar merah, saldo tebal; baris saldo awal dan akhir tenang. */
.erp-ledger .erp-in {
	color: color-mix(in srgb, var(--basalt-success) 58%, var(--basalt-copy));
}
.erp-ledger .erp-out {
	color: color-mix(in srgb, var(--basalt-danger) 62%, var(--basalt-copy));
}
.erp-ledger .erp-balance {
	font-weight: 700;
}
.erp-ledger .erp-ledger-edge > * {
	color: var(--erp-quiet);
	background: var(--basalt-wash);
}
.erp-ledger tfoot .erp-ledger-edge > * {
	font-weight: 700;
	color: var(--basalt-copy);
	border-top: 1px solid var(--erp-line);
	border-bottom: 0;
}
.erp-filters {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto;
	align-items: end;

	& .erp-field {
		margin: 0;
	}

	@media (max-width: 991.98px) {
		grid-template-columns: repeat(2, minmax(0, 1fr));

		& .erp-field:first-child {
			grid-column: 1/-1;
		}
	}
	@media (max-width: 399.98px) {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Lembar hitung stock opname. */
.erp-count-tools {
	display: flex;
	gap: 0.75rem 1rem;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 1rem;

	& .whs-search {
		flex: 0 1 22rem;
	}
}
.erp-count .erp-count-input {
	width: 9rem;
	margin-left: auto;

	& .form-control {
		text-align: right;
	}
}
.erp-count .erp-cost-input {
	width: 10rem;
	margin-left: auto;
}
.erp-count td.erp-num .invalid-feedback {
	text-align: right;
	white-space: normal;
}
.erp-count tr[hidden] {
	display: none;
}
.erp-diff-up {
	font-weight: 700;
	color: color-mix(in srgb, var(--basalt-success) 58%, var(--basalt-copy));
}
.erp-diff-down {
	font-weight: 700;
	color: color-mix(in srgb, var(--basalt-danger) 62%, var(--basalt-copy));
}
.erp-count-foot {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	padding: 1rem var(--basalt-pad-x);
	border-top: 1px solid var(--erp-line);
	font-size: 0.8rem;
	color: var(--erp-quiet);

	@media (max-width: 575.98px) {
		padding-left: var(--basalt-pad-x-narrow);
		padding-right: var(--basalt-pad-x-narrow);
	}
}
.erp-count-none {
	padding: 2rem var(--basalt-pad-x);
}
.hire-page .basalt-alert {
	margin-bottom: 1.5rem;
}

/* Teks yang hanya muncul saat baris menjadi kartu kecil di layar sempit. */
.erp-only-narrow {
	display: none;
}

/* Daftar di kartu sempit: keterangan kolom yang disembunyikan turun ke bawah judul baris. Di kartu
   stok, jenis move ke bawah tanggal dan perubahan qty ke bawah saldo. */
@container (max-width: 600px) {
	.erp-list .erp-who-meta.erp-only-narrow {
		display: block;
	}
	.erp-ledger .erp-only-narrow {
		display: block;
		font-size: var(--erp-fs-small);
		color: var(--erp-quiet);
	}
	.erp-ledger .erp-only-narrow.erp-in {
		color: color-mix(in srgb, var(--basalt-success) 58%, var(--basalt-copy));
	}
	.erp-ledger .erp-only-narrow.erp-out {
		color: color-mix(in srgb, var(--basalt-danger) 62%, var(--basalt-copy));
	}
}

/* Lembar hitung di kartu sempit: tiap produk menjadi catatan kecil, isian tetap terjangkau. */
@container (max-width: 600px) {
	.erp-count .erp-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		white-space: nowrap;
		clip-path: inset(50%);
	}
	.erp-count .erp-table,
	.erp-count .erp-table tbody {
		display: block;
	}
	.erp-count .erp-table tr[data-erp-line] {
		display: grid;
		gap: 0.75rem 1rem;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "prod prod" "sys qty" "diff value" "cost cost";
		align-items: center;
		padding: 1rem var(--basalt-pad-x-narrow);
		border-bottom: 1px solid var(--erp-line);
	}
	.erp-count .erp-table tr[data-erp-line][hidden] {
		display: none;
	}
	.erp-count .erp-table tr[data-erp-line] > td {
		display: block;
		padding: 0;
		border: 0;
		text-align: left;
	}
	.erp-count .erp-table tr[data-erp-line] > td:nth-child(1) {
		grid-area: prod;
	}
	.erp-count .erp-table tr[data-erp-line] > td:nth-child(2) {
		grid-area: sys;
	}
	.erp-count .erp-table tr[data-erp-line] > td:nth-child(3) {
		grid-area: qty;
		justify-self: end;
	}
	.erp-count .erp-table tr[data-erp-line] > td:nth-child(4) {
		grid-area: diff;
	}
	.erp-count .erp-table tr[data-erp-line] > td:nth-child(5) {
		grid-area: cost;
	}
	.erp-count .erp-table tr[data-erp-line] > td:nth-child(5):not(:has(.erp-cost-input)) {
		display: none;
	}
	.erp-count .erp-table tr[data-erp-line] > td:nth-child(6) {
		grid-area: value;
		justify-self: end;
	}
	.erp-count .erp-cost-input {
		width: 100%;
		margin-left: 0;
	}
	.erp-count .erp-only-narrow {
		display: inline;
		color: var(--erp-quiet);
	}
	.erp-count .erp-cost-label.erp-only-narrow {
		display: block;
		margin-bottom: 0.35rem;
		font-size: var(--erp-fs-small);
	}
}

/* Stock move di ponsel: nama produk tetap terlihat, karena itu inti tiap baris. */
@media (max-width: 575.98px) {
	.stx-page .stx-table tbody tr[data-stx-id] {
		grid-template-areas:
			"id     value"
			"route  route"
			"items  items"
			"status act";
	}
	.stx-page .stx-table td.stx-col-items {
		display: block;
	}
}
