/* stack.css — page stack technique détaillée */

/*
 * Liste numérotée — registre "dossier technique" (Brutalisme suisse : grille
 * stricte, typographie dominante, espace négatif) plutôt qu'une grille de
 * cartes génériques. Index mono repris de l'esprit du sidebar numéroté du
 * template source (01 → 07).
 */
.stack-window {
  margin-top: var(--space-8);
}

.stack-list {
  margin-top: var(--space-8);
  border-top: var(--border-thin) solid var(--color-border);
}

/* Nichée dans une fenêtre-chrome : la barre de titre suffit à séparer. */
.window-chrome .stack-list {
  margin-top: 0;
  border-top: none;
}

.window-chrome .stack-row:first-child {
  border-top: none;
}

.stack-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  padding: var(--space-6) var(--space-3);
  margin-inline: calc(-1 * var(--space-3));
  border-bottom: var(--border-thin) solid var(--color-border);
  transition: background var(--transition-normal);
}

@media (min-width: 1024px) {
  .stack-row {
    grid-template-columns: 3.5rem minmax(16rem, 1fr) 1.3fr;
    align-items: baseline;
    gap: var(--space-6);
  }
}

.stack-row:hover {
  background: var(--color-surface-2);
}

.stack-row__index {
  font-family: var(--font-mono);
  font-size: var(--text-lg);
  font-variant-numeric: tabular-nums;
  color: var(--color-ink-faint);
  transition: color var(--transition-fast);
}

.stack-row:hover .stack-row__index {
  color: var(--color-signal);
}

.stack-row__title {
  font-size: var(--text-lg);
}

.stack-row__desc {
  margin-top: var(--space-2);
  color: var(--color-ink-soft);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  max-width: 42ch;
}

.stack-row__badges {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: var(--space-2);
}
