/* ===== Filtres ===== */
.filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
}

.filters select {
  padding: 9px 12px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  font: inherit;
  font-size: 14px;
}

.filters label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.summary {
  margin-left: auto;
  color: var(--mute);
  font-size: 14px;
}

/* ===== Ouvrir un booster ===== */
.pack-row {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 20px;
  margin-top: 14px;
  padding: 18px 20px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.pack-row .avatar {
  width: 44px;
  height: 44px;
}

.pack-row .progress strong {
  display: block;
  margin-bottom: 8px;
}

.pack-row .boosters {
  font-size: 28px;
}

/* ===== Échanges ===== */
.chip {
  display: inline-block;
  padding: 3px 12px;
  background: var(--rc, var(--card));
  border-radius: 999px;
  color: var(--rt, var(--ink));
  font-size: 13px;
  font-weight: 600;
}

.offer {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 20px;
  margin-top: 12px;
  padding: 14px 18px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.offer small {
  color: var(--mute);
}

.swap {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--mute);
}

.offer-actions {
  display: flex;
  gap: 8px;
}

/* ===== Parcours ===== */
.achievements {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
  margin-top: 28px;
}

.ach {
  position: relative;
  padding: 20px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.ach h3 {
  margin-bottom: 4px;
  font-size: 18px;
}

.ach p {
  margin-bottom: 14px;
  color: var(--mute);
  font-size: 14px;
}

.ach small {
  display: block;
  margin-top: 8px;
  color: var(--mute);
}

.ach.done {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.ach-mark {
  position: absolute;
  top: 16px;
  right: 16px;
  color: var(--accent);
  font-weight: 700;
}

/* ===== Connexion, inscription, compte ===== */
.auth {
  max-width: 600px;
}

.auth .form {
  grid-template-columns: 1fr;
}

.auth .form .btn {
  justify-self: start;
}

.auth a:not(.btn) {
  color: var(--accent);
}

.divider {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--mute);
  font-size: 13px;
}

.divider::before,
.divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line);
}

.facts {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px 24px;
  margin-top: 8px;
}

.facts dt {
  color: var(--mute);
}

.ok {
  color: #6fdc9a;
}

/* ===== Mobile ===== */
@media (max-width: 700px) {
  .pack-row,
  .offer {
    grid-template-columns: 1fr;
  }

  .summary {
    margin-left: 0;
  }
}
