/*
 * Ce que seul « trouve son prenom » utilise : le quiz en pastilles et la
 * liste des idees. Tout le reste vient de `commun.css`.
 */

.tsp-question {
  margin: 0 0 20px;
  padding: 0;
  border: none;
  display: grid;
  gap: 10px;
}

.tsp-question legend {
  margin-bottom: 10px;
  padding: 0;
  font-family: var(--font-titre);
  font-size: var(--text-md);
  font-weight: 800;
  color: var(--color-text);
}

/* Des pastilles plutot que des boutons radio : au pouce, une cible de
   44 pixels vaut mieux qu'un rond de 16. */
.tsp-choix {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tsp-choix label {
  margin: 0;
  cursor: pointer;
}

.tsp-choix input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.tsp-choix span {
  display: inline-flex;
  flex-direction: column;
  min-height: 44px;
  justify-content: center;
  padding: 10px 16px;
  border: 2px solid var(--color-border-strong);
  border-radius: var(--radius-pill);
  background: #fff;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text-soft);
  transition: border-color 0.15s, background 0.15s;
}

.tsp-choix input:checked + span {
  border-color: var(--color-accent);
  background: var(--color-accent-bg);
  color: var(--color-text);
}

.tsp-choix input:focus-visible + span {
  outline: 3px solid var(--color-accent);
  outline-offset: 1px;
}

/* Les styles et la rarete portent une explication : ils passent en cartes. */
.tsp-choix-larges {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.tsp-choix-larges label {
  display: flex;
}

.tsp-choix-larges span {
  flex: 1;
  border-radius: var(--radius-lg);
  align-items: flex-start;
}

.tsp-choix-larges strong {
  color: var(--color-text);
}

.tsp-choix-larges em {
  font-style: normal;
  font-weight: 400;
  font-size: var(--text-xs);
  color: var(--color-muted);
}

.tsp-aine {
  display: grid;
  gap: 8px;
  margin-top: 6px;
}

.tsp-aide {
  margin: 0;
  font-size: var(--text-xs);
  color: var(--color-muted);
}

/* ---------------------------------------------------------------------------
   Les idees
   --------------------------------------------------------------------------- */

.tsp-resume {
  margin: 0 0 16px;
  font-size: var(--text-sm);
  color: var(--color-text-soft);
}

.tsp-liste {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tsp-piste {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px auto;
  gap: 4px 14px;
  align-items: center;
  padding: 14px 16px;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: #fff;
}

.tsp-piste.coup-de-coeur {
  border-color: var(--color-accent);
}

.tsp-nom {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  margin: 0;
  font-family: var(--font-titre);
  font-size: var(--text-xl);
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-text);
}

.tsp-phase {
  padding: 2px 10px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-alt);
  font-family: 'LPD Libelle', sans-serif;
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--color-text-soft);
}

.tsp-phase[data-phase='fusee'],
.tsp-phase[data-phase='monte'] {
  background: var(--color-highlight);
  color: var(--color-text);
}

.tsp-raison {
  margin: 4px 0 0;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-accent);
}

.tsp-chiffres {
  margin: 2px 0 0;
  font-size: var(--text-xs);
  color: var(--color-muted);
}

.tsp-liens {
  margin: 6px 0 0;
  font-size: var(--text-xs);
}

.tsp-liens a {
  color: var(--color-accent);
  font-weight: 600;
}

.tsp-mini {
  width: 96px;
  height: 40px;
}

.tsp-mini polyline {
  fill: none;
  stroke: var(--color-accent);
  stroke-width: 2.5;
  stroke-linejoin: round;
  stroke-linecap: round;
}

.tsp-mini line {
  stroke: var(--color-border-strong);
  stroke-width: 1;
}

.tsp-mini text {
  font-size: 8px;
  fill: var(--color-muted);
}

.tsp-boutons {
  display: grid;
  gap: 6px;
}

.tsp-boutons button {
  width: 40px;
  height: 40px;
  margin: 0;
  border: 2px solid var(--color-border);
  border-radius: 50%;
  background: #fff;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}

.tsp-boutons button:hover {
  border-color: var(--color-accent);
}

.tsp-boutons button[aria-pressed='true'] {
  border-color: var(--color-accent);
  background: var(--color-accent-bg);
}

.tsp-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.tsp-actions .btn {
  margin-top: 0;
}

/* La liste est longue : sur grand ecran, la carte la suit au lieu de rester
   en haut, ou chaque coup de coeur la modifiait hors de la vue. */
@media (min-width: 861px) {
  .tsp-grille .outil-apercu {
    position: sticky;
    top: 20px;
  }
}

@media (max-width: 860px) {
  /* Ici la liste est le resultat, et la carte son prolongement : sur
     telephone, elle passe apres les idees et non avant, comme ailleurs. */
  .tsp-grille .outil-apercu {
    order: 0;
  }

  .tsp-piste {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .tsp-mini {
    grid-column: 1;
    grid-row: 2;
  }
}
