/* ==========================================================================
   Roadmap & versions
   ========================================================================== */
.roadmap-layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 20px; align-items: start; }
.roadmap-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.roadmap-filters { margin-bottom: 0; display: flex; flex-direction: column; gap: 10px; }
.roadmap-filter-group .filter-label { font-weight: 600; margin-bottom: 4px; }
.roadmap-version { scroll-margin-top: calc(var(--header-h) + 12px); }
.roadmap-version-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.roadmap-version-title { margin: 0 0 2px; font-size: 1.2rem; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.roadmap-version-title > .icon { color: var(--text-faint); }
.roadmap-version-title a { color: var(--text); }
.roadmap-version-title a:hover { color: var(--link); }
.roadmap-version-dates { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.roadmap-version-dates .icon { width: 13px; height: 13px; }
.roadmap-version-desc { color: var(--text-muted); margin: 4px 0 12px; }
.roadmap-wps { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 10px; }
.roadmap-wps > summary { cursor: pointer; font-weight: 600; color: var(--text-muted); font-size: .9rem; display: inline-flex; gap: 6px; align-items: center; user-select: none; }
.roadmap-type-group { margin-top: 10px; }
.roadmap-type-title { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.roadmap-wp-list { list-style: none; margin: 0; padding: 0; }
.roadmap-wp-list li { display: flex; align-items: center; gap: 8px; padding: 4px 6px; border-radius: var(--radius-sm); min-width: 0; }
.roadmap-wp-list li:hover { background: var(--bg-hover); }
.roadmap-wp-list li.is-closed .roadmap-wp-subject { text-decoration: line-through; color: var(--text-muted); }
.roadmap-wp-link { color: var(--text-muted); font-size: .88rem; font-variant-numeric: tabular-nums; flex-shrink: 0; }
.roadmap-wp-subject { color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.roadmap-wp-list .status-badge { font-size: .76rem; flex-shrink: 0; }
.roadmap-aside-list { list-style: none; margin: 0; padding: 6px; max-height: 60vh; overflow-y: auto; }
.roadmap-aside-list a { display: flex; justify-content: space-between; gap: 8px; padding: 6px 8px; border-radius: var(--radius-sm); color: var(--text); }
.roadmap-aside-list a:hover { background: var(--bg-hover); text-decoration: none; }

/* Progress */
.version-progress { display: flex; align-items: center; gap: 10px; }
.version-progress-bar { flex: 1 1 auto; height: 14px; border-radius: 7px; background: var(--bg-muted); overflow: hidden; display: flex; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--border) 60%, transparent); }
.version-progress-bar .vp-closed { background: var(--success); height: 100%; }
.version-progress-bar .vp-done { background: color-mix(in srgb, var(--success) 45%, var(--bg-muted)); height: 100%; }
.version-progress-pct { font-weight: 700; font-variant-numeric: tabular-nums; min-width: 46px; text-align: right; }
.version-progress-legend { margin-top: 6px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.vp-swatch { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 4px; vertical-align: 0; }
.vp-swatch.vp-closed { background: var(--success); }
.vp-swatch.vp-open { background: var(--bg-muted); box-shadow: inset 0 0 0 1px var(--border-strong); }

/* Version page */
.version-desc { font-size: 1.02rem; color: var(--text-muted); margin: 0; }
.version-wp-table tr.is-closed .wp-subject-link { text-decoration: line-through; color: var(--text-muted); }
.version-breakdown { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.version-breakdown-bar { height: 6px; border-radius: 3px; background: var(--bg-muted); overflow: hidden; margin-top: 3px; }
.version-breakdown-bar span { display: block; height: 100%; background: var(--success); }

/* Versions settings table */
.versions-table-name { font-weight: 600; }
.versions-table tr.is-shared td { background: color-mix(in srgb, var(--bg-subtle) 60%, transparent); }
.version-status-open { background: var(--success-soft); color: var(--success); }
.version-status-locked { background: var(--warning-soft); color: var(--warning); }
.version-status-closed { background: var(--bg-muted); color: var(--text-muted); }
.disabled-look { opacity: .35; cursor: not-allowed; }

@media (max-width: 1100px) {
  .roadmap-layout { grid-template-columns: 1fr; }
  .roadmap-aside { display: none; }
}
