/* Kenjoh Inventory — scoped to .kj-* so it sits on top of any theme. */
.kj-inv, .kj-board, .kj-stats {
	--kj-ink: #111111;
	--kj-muted: #5a5a5a;
	--kj-line: #e2e0da;
	--kj-surface: #f4f3f0;
	--kj-accent: #c1121f;
	--kj-accent-text: #a50f1a;
	--kj-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	--kj-display: "Archivo", system-ui, sans-serif;
	color: var(--kj-ink);
}
.kj-inv *, .kj-board *, .kj-stats * { box-sizing: border-box; }
.kj-muted { color: var(--kj-muted); font-size: 0.875rem; }
.kj-code { font-family: var(--kj-mono); font-weight: 700; }

.kj-tag {
	display: inline-block; padding: 4px 8px; background: var(--kj-ink); color: #fff;
	font: 700 11px/1.2 var(--kj-mono); letter-spacing: 0.08em; text-transform: uppercase;
}
.kj-tag--digital { background: var(--kj-accent); }

.kj-filters {
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px;
	padding-bottom: 20px; margin-bottom: 24px; border-bottom: 1px solid var(--kj-line);
}
.kj-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.kj-filter__label { font-size: 0.8125rem; font-weight: 600; color: var(--kj-muted); margin-right: 4px; }
.kj-filter--check { gap: 10px; font-size: 0.875rem; font-weight: 500; min-height: 44px; cursor: pointer; }
.kj-filter--check input { width: 20px; height: 20px; accent-color: var(--kj-ink); }
.kj-btn {
	min-width: 44px; min-height: 44px; padding: 0 14px; border: 1px solid #cfccc4; background: #fff; color: var(--kj-ink);
	font-family: inherit; font-size: 0.875rem; font-weight: 600; line-height: 1; cursor: pointer; border-radius: 0;
}
.kj-btn--mono { font-family: var(--kj-mono); font-size: 0.8125rem; padding: 0 10px; }
.kj-btn[aria-pressed="true"] { background: var(--kj-ink); border-color: var(--kj-ink); color: #fff; }
.kj-btn:focus-visible, .kj-card__link:focus-visible, .kj-pin:focus-visible { outline: 3px solid var(--kj-accent); outline-offset: 2px; }
.kj-count { margin: 0 0 0 auto; font-size: 0.875rem; color: var(--kj-muted); }
.kj-count strong { color: var(--kj-ink); }

.kj-map { position: relative; background: #fafaf8; border: 1px solid var(--kj-line); }
.kj-map__base { display: block; width: 100%; height: auto; }
.kj-pin {
	position: absolute; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff;
	background: var(--kj-ink); transform: translate(-50%, -50%); transition: transform 0.12s, opacity 0.12s;
}
.kj-pin--digital { background: var(--kj-accent); }
.kj-pin:hover { transform: translate(-50%, -50%) scale(1.6); z-index: 1; }
.kj-pin.is-dim { opacity: 0.15; }
.kj-legend { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; font-size: 0.8125rem; }

/* Map beside the market list ([kenjoh_inventory] and [kenjoh_coverage]). */
.kj-overview { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; margin-bottom: 40px; }
.kj-map-wrap { flex: 999 1 520px; min-width: 0; }
.kj-markets { flex: 1 1 300px; min-width: 0; border: 1px solid var(--kj-line); background: #fff; }
.kj-markets__title { margin: 0; padding: 14px 18px; font-family: var(--kj-display); font-weight: 800; font-size: 1.125rem; border-bottom: 1px solid var(--kj-line); }
.kj-markets ul { list-style: none; margin: 0; padding: 0; }
.kj-markets li { margin: 0; border-bottom: 1px solid var(--kj-line); }
.kj-markets li:last-child { border-bottom: 0; }
.kj-markets a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 0 18px; color: var(--kj-ink); text-decoration: none; font-size: 0.875rem; }
.kj-markets a:hover { background: var(--kj-surface); }
.kj-markets__count { font-family: var(--kj-mono); font-size: 0.75rem; color: var(--kj-muted); white-space: nowrap; }

/* [kenjoh_stats] */
.kj-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap: 1px; margin: 0; background: var(--kj-line); border-top: 1px solid var(--kj-line); border-bottom: 1px solid var(--kj-line); }
.kj-stats__cell { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding: 28px 24px; background: #fff; }
.kj-stats__value { margin: 0; font-family: var(--kj-display); font-weight: 800; font-size: 2.75rem; line-height: 1; }
.kj-stats__value.is-accent { color: var(--kj-accent); }
.kj-stats__label { margin-top: 8px; font-size: 0.875rem; color: var(--kj-muted); }

.kj-more { display: flex; justify-content: center; margin: 32px 0 0; }
.kj-more[hidden] { display: none; }
.kj-more .kj-button { cursor: pointer; font: inherit; font-weight: 600; }
.kj-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--kj-ink); margin-left: 12px; }
.kj-dot--digital { background: var(--kj-accent); margin-left: 0; }

.kj-grid {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px;
}
.kj-grid--compact { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.kj-card { margin: 0; border: 1px solid var(--kj-line); background: #fff; transition: transform 0.15s, box-shadow 0.15s; }
.kj-card:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(17, 17, 17, 0.12); }
.kj-card[hidden] { display: none; }
.kj-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.kj-card__media { position: relative; aspect-ratio: 16 / 10; background: #e9e7e1; overflow: hidden; }
.kj-card__media .kj-tag, .kj-board__media .kj-tag { position: absolute; top: 10px; left: 10px; }
.kj-card__photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.kj-photo--empty { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--kj-muted); font-size: 0.875rem; }
.kj-card__body { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px 16px; flex: 1; }
.kj-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.kj-card__head .kj-code { font-size: 1.125rem; }
.kj-card__loc { margin: 0; font-size: 0.875rem; line-height: 1.45; color: #3d3d3d; }
.kj-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: auto 0 0; padding: 6px 0 0; }
.kj-chips li { margin: 0; padding: 4px 8px; background: var(--kj-surface); font-size: 0.75rem; font-weight: 500; }
.kj-empty { padding: 24px 0; color: var(--kj-muted); }

.kj-board { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 32px; margin-bottom: 40px; }
.kj-board__media { position: relative; aspect-ratio: 16 / 10; background: #e9e7e1; overflow: hidden; }
.kj-board__photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.kj-board__loc { margin: 0; font-size: 1.2rem; line-height: 1.45; }
.kj-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 20px 0 0; border-top: 1px solid var(--kj-line); }
.kj-specs > div { padding: 12px 0; border-bottom: 1px solid var(--kj-line); }
.kj-specs dt { font-size: 0.75rem; color: var(--kj-muted); }
.kj-specs dd { margin: 4px 0 0; font-weight: 600; }
.kj-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; }
.kj-downloads { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; }
.kj-download { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var(--kj-line); background: var(--kj-surface); color: var(--kj-ink); font-weight: 600; font-size: 0.9375rem; text-decoration: none; }
.kj-download:hover { border-color: var(--kj-ink); color: var(--kj-ink); }
.kj-button {
	display: inline-flex; align-items: center; min-height: 48px; padding: 0 20px;
	background: var(--kj-accent); color: #fff; font-weight: 600; text-decoration: none;
}
.kj-button:hover { background: var(--kj-accent-text); color: #fff; }
.kj-button--ghost { background: #fff; color: var(--kj-ink); border: 1px solid var(--kj-ink); }
.kj-button--ghost:hover { background: var(--kj-surface); color: var(--kj-ink); }
.kj-board__map { grid-column: 1 / -1; }
.kj-board__map iframe { display: block; width: 100%; height: 360px; border: 1px solid var(--kj-line); }
.kj-board__siblings { grid-column: 1 / -1; }
.kj-board__siblings h2 { margin: 0 0 14px; font-size: 1.375rem; }
.kj-board__siblings .kj-card__body { gap: 4px; }

@media (max-width: 782px) {
	.kj-board { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.kj-count { margin-left: 0; width: 100%; }
	.kj-board__map iframe { height: 280px; }
}
