/* /sprites review desk — matches viewer chrome language */

body.sprites-page {
  margin: 0;
  min-height: 100%;
  color: var(--text);
  font-family: var(--font);
  font-size: var(--font-body);
  line-height: 1.4;
  background:
    radial-gradient(900px 420px at 10% -10%, rgba(196, 146, 74, 0.14), transparent 55%),
    linear-gradient(180deg, #1c1510, var(--void));
  -webkit-font-smoothing: none;
  image-rendering: pixelated;
}

.sprites-header {
  padding: 16px 16px 8px;
  border-bottom: 2px solid var(--stone-dark);
  background: linear-gradient(180deg, #2a1e14, var(--wood-dark));
  box-shadow: inset 0 -1px 0 rgba(232, 196, 130, 0.1);
}

.sprites-brand {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px;
}

.sprites-brand__link {
  color: var(--copper-light);
  text-decoration: none;
  font-size: var(--font-sub);
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.85);
}

.sprites-title {
  margin: 0;
  font-size: var(--font-head);
  font-weight: 400;
  color: var(--yellow);
  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.85);
}

.sprites-lede {
  margin: 8px 0 12px;
  color: var(--mute);
  max-width: 42rem;
}

.sprites-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: end;
}

.sprites-filter {
  display: grid;
  gap: 4px;
  color: var(--mute);
}

.sprites-filter select {
  font-family: var(--font);
  font-size: var(--font-body);
  color: var(--ink);
  background: var(--beige);
  border: 2px solid var(--ink);
  padding: 4px 6px;
  min-width: 10rem;
}

.sprites-persist {
  color: var(--mute);
  align-self: center;
}

.sprites-persist[data-mode="write"] {
  color: var(--live);
}

.sprites-persist[data-mode="export"] {
  color: var(--connecting);
}

.sprites-meta {
  margin: 12px 0 0;
  color: var(--mute);
}

.sprites-meta a {
  color: var(--orange);
  text-decoration: none;
}

.sprites-main {
  padding: 16px;
  display: grid;
  gap: 28px;
}

.sprites-category__title {
  margin: 0 0 10px;
  font-size: var(--font-sub);
  font-weight: 400;
  color: var(--copper-light);
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.8);
}

.sprites-category__count {
  color: var(--mute);
  font-size: var(--font-body);
}

.sprites-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  gap: 10px;
}

.sprite-card {
  display: grid;
  grid-template-rows: 72px auto auto;
  gap: 6px;
  padding: 8px;
  background:
    linear-gradient(180deg, #2a1e14, var(--wood-dark));
  border-style: solid;
  border-width: 2px;
  border-color: var(--stone-dark) var(--copper-dark) var(--copper-dark) var(--stone-dark);
  box-shadow:
    inset 2px 2px 0 rgba(0, 0, 0, 0.45),
    2px 2px 0 rgba(0, 0, 0, 0.35);
}

.sprite-card[data-status="approved"] {
  outline: 2px solid rgba(63, 191, 138, 0.55);
}

.sprite-card[data-status="rejected"] {
  outline: 2px solid rgba(196, 74, 58, 0.55);
}

.sprite-card__preview {
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, #1c1810 25%, #0a0806 25% 50%, #242018 50% 75%, #0a0806 75%);
  background-size: 16px 16px;
  border: 1px solid var(--stone-dark);
  overflow: hidden;
}

.sprite-card__preview img {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  /* Nearest-neighbor upscale so 16x16 noise is readable in the desk. */
  width: calc(var(--sprite-w, 16) * 1px * var(--sprite-zoom, 3));
  height: calc(var(--sprite-h, 16) * 1px * var(--sprite-zoom, 3));
  max-width: none;
  max-height: none;
  object-fit: none;
}

.sprite-card__empty {
  color: var(--mute);
  font-size: var(--font-body);
  opacity: 0.7;
}

.sprite-card__id {
  color: var(--beige-light);
  word-break: break-word;
  line-height: 1.25;
}

.sprite-card__notes {
  color: var(--mute);
  min-height: 1.2em;
}

.sprite-card__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.sprite-card__actions button {
  font-family: var(--font);
  font-size: var(--font-body);
  border: 2px solid var(--ink);
  padding: 4px 0;
  cursor: pointer;
  color: var(--ink);
  background: linear-gradient(180deg, var(--beige-light), var(--beige));
  box-shadow: inset 1px 1px 0 rgba(255, 220, 160, 0.18);
}

.sprite-card__actions button.is-active[data-action="approve"] {
  background: linear-gradient(180deg, #7ad4a8, #3fbf8a);
}

.sprite-card__actions button.is-active[data-action="reject"] {
  background: linear-gradient(180deg, #e08a7a, #c44a3a);
  color: #fff8f0;
}

.sprite-card.is-hidden {
  display: none;
}

@media (max-width: 640px) {
  .sprites-grid {
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  }
}
