:root {
  --tile-bg: #f7f9fc;
  --tile-border: #d9e1ef;
}

html[data-bs-theme="dark"] {
  --tile-bg: #1f2630;
  --tile-border: #3a495d;
}

body {
  min-height: 100vh;
}

.tile-link {
  text-decoration: none;
  color: inherit;
}

.tile-card {
  border: 2px solid var(--tile-border);
  background: linear-gradient(135deg, var(--tile-bg), transparent);
  border-radius: 1rem;
  min-height: 7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 600;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.75rem;
}

.stat-card {
  border: 1px solid #dbe3ef;
  border-radius: 0.75rem;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
}

.stat-card strong {
  font-size: 1.2rem;
}

.puzzle-thumb {
  object-fit: cover;
  width: 100%;
  height: 180px;
}

.submission-photo {
  max-width: 240px;
  border-radius: 0.5rem;
}

.before-after {
  position: relative;
  max-width: 360px;
}

.before-after img {
  display: block;
  width: 100%;
  border-radius: 0.5rem;
}

.before-after .before {
  position: absolute;
  inset: 0;
}

.star-input {
  display: inline-flex;
  flex-direction: row-reverse;
  gap: 0.2rem;
}

.star-input input {
  display: none;
}

.star-input label {
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  color: #adb5bd;
}

.star-input label:hover,
.star-input label:hover ~ label,
.star-input input:checked ~ label {
  color: #f59f00;
}
