/* ============================================================
   /roadmap — live roadmap board (js/roadmap.js).
   Uses the design tokens from styles.css; loaded only by roadmap.html.
   CSP-safe: no inline styles anywhere; state is expressed with classes
   and the [hidden] attribute.
   ============================================================ */

.roadmap-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  align-items: start;
}
@media (max-width: 960px) { .roadmap-board { grid-template-columns: 1fr; } }

.roadmap-col { padding: 22px; }
.roadmap-col-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.roadmap-col-head h3 { margin: 0; font-size: 1rem; }
.roadmap-count {
  min-width: 28px;
  padding: 2px 9px;
  border-radius: 999px;
  background: var(--surface-2);
  border: 1px solid var(--line);
  color: var(--muted);
  font-size: .82rem;
  font-weight: 700;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.roadmap-count:empty { display: none; }

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

.roadmap-item {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  padding: 14px 16px;
}
.roadmap-item h4 { margin: 0 0 6px; font-size: .98rem; line-height: 1.35; font-weight: 700; overflow-wrap: anywhere; }
.roadmap-item h4 a { color: var(--ink); }
.roadmap-item h4 a:hover { color: var(--accent-strong); }
.roadmap-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin: 0;
  color: var(--muted);
  font-size: .84rem;
}
.roadmap-cat {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 6px;
  background: var(--tint);
  color: var(--accent-text);
  font-weight: 600;
  font-size: .78rem;
}
.roadmap-votes { font-variant-numeric: tabular-nums; }
.roadmap-note {
  margin: 10px 0 0;
  padding: 8px 10px;
  border-left: 3px solid var(--purple-400);
  background: var(--tint);
  border-radius: 0 8px 8px 0;
  color: var(--body);
  font-size: .88rem;
  white-space: pre-line;
  overflow-wrap: anywhere;
}
.roadmap-note b { display: block; color: var(--accent-strong); font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 2px; }
.roadmap-empty { color: var(--muted); font-size: .92rem; margin: 4px 0 0; }

/* Loading placeholders (removed by js/roadmap.js) */
.roadmap-skel {
  height: 74px;
  border-radius: var(--radius-sm);
  background: linear-gradient(90deg, var(--surface-2), var(--line), var(--surface-2));
  background-size: 200% 100%;
  animation: roadmap-shimmer 1.4s ease-in-out infinite;
}
@keyframes roadmap-shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }
@media (prefers-reduced-motion: reduce) { .roadmap-skel { animation: none; } }
/* Without JS the board can't load: show the fallback text only. */
html:not(.js) .roadmap-board, html:not(.js) .roadmap-status { display: none; }
html:not(.js) .roadmap-fallback[hidden] { display: flex; }

.roadmap-status { min-height: 1.5em; margin-bottom: 18px; }
.roadmap-fallback[hidden] { display: none; }
.roadmap-board--offline { display: none; }

.roadmap-steps .card h3 { display: flex; align-items: center; gap: 10px; }
.roadmap-steps .step-num {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--tint-2);
  color: var(--accent-strong);
  font-size: .9rem;
  font-weight: 800;
}
