/* CDN download portal — catalog-specific styles. Uses shared theme tokens
   (var(--c-*)) so it follows light/dark with the rest of the theme. */

.cdn-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1rem;
}

.cdn-card {
  display: flex;
  flex-direction: column;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 1.4rem;
}

.cdn-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.cdn-card-title {
  font-family: var(--font-display);
  font-variation-settings: "opsz" 60, "SOFT" 50, "WONK" 1;
  font-size: 1.2rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.2;
  color: var(--c-heading);
}

.cdn-card-code {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  color: var(--c-text-mute);
  margin-top: 0.25rem;
}

.cdn-badge {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-brand);
  background: var(--accent-soft);
  border-radius: 999px;
  padding: 0.3rem 0.55rem;
  white-space: nowrap;
}

/* channel + version tags stack in the top-right of a card */
.cdn-card-tags {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.4rem;
}

.cdn-chan {
  font-family: var(--font-mono);
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1;
  padding: 0.26rem 0.5rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  white-space: nowrap;
}
.cdn-chan-release { color: var(--c-brand); }
.cdn-chan-beta    { color: #2f6fb0; }
.cdn-chan-dev     { color: #c0492f; }

.cdn-meta.cdn-prerelease {
  color: #c0492f;
  font-weight: 600;
}

.cdn-latest { margin: 1rem 0 0.25rem 0; }

.cdn-meta {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.04em;
  color: var(--c-text-mute);
  margin-top: 0.35rem;
}
.cdn-meta.checksum { word-break: break-all; }

.cdn-card details {
  margin-top: 0.9rem;
  border-top: 1px dotted var(--c-border);
  padding-top: 0.6rem;
}
.cdn-card summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-accent);
}
.cdn-card summary::-webkit-details-marker { display: none; }
.cdn-card summary::before { content: "▸ "; }
.cdn-card details[open] summary::before { content: "▾ "; }

.cdn-ver-list { list-style: none; margin: 0.6rem 0 0 0; padding: 0; }
.cdn-ver-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  padding: 0.3rem 0;
  border-bottom: 1px dotted var(--c-border);
}
.cdn-ver-list li:last-child { border-bottom: 0; }
.cdn-ver-name { font-family: var(--font-mono); font-size: 0.74rem; color: var(--c-text); }
.cdn-ver-list a {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  text-decoration: none;
  color: var(--c-brand);
}
.cdn-ver-list a:hover { color: var(--c-accent); }

.cdn-state {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  color: var(--c-text-mute);
  padding: 1rem 0;
}

/* compact download button (reuses .btn .btn-primary base) */
.btn.cdn-btn { padding: 0.6rem 1rem; font-size: 0.78rem; }
