/* Downloads page composition. Shared controls, tokens and defaults come from RRB Framework. */

* { box-sizing: border-box; }
body {
  margin: 0;
  min-width: 320px;
  container: downloads-viewport / inline-size;
}
[hidden] { display: none !important; }

.downloads-topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 96%, transparent);
}
.downloads-topbar__inner {
  width: min(100% - 40px, 1180px);
  min-height: 68px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: var(--sp-xl);
}
.downloads-brand {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: var(--sp-md);
  color: var(--text);
  font-weight: 800;
  letter-spacing: .035em;
  text-decoration: none;
}
.downloads-brand__mark {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: var(--r-field);
  background: var(--primary);
  color: var(--on-primary);
  box-shadow: var(--e2);
}
.downloads-nav {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--sp-xs);
}
.downloads-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 0 var(--sp-md);
  border-radius: var(--r-field);
  color: var(--text-muted);
  font-weight: 650;
  text-decoration: none;
}
.downloads-nav a:hover,
.downloads-nav a:focus-visible {
  background: var(--surface-muted);
  color: var(--text);
}
.downloads-topbar .status-chip { flex: 0 0 auto; }

.downloads-shell {
  width: min(100% - 40px, 1180px);
  max-width: 1180px;
  min-height: calc(100vh - 68px);
  margin: 0 auto;
  padding: 48px 0 72px;
}
.downloads-page .btn,
.downloads-page .chip,
.downloads-page .form-input,
.downloads-page .form-select {
  min-height: 44px;
}
.downloads-hero { margin-bottom: var(--sp-2xl); }
.downloads-eyebrow {
  margin: 0 0 var(--sp-sm);
  color: var(--primary);
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: .11em;
}
.downloads-hero h1,
.downloads-admin-header h1 {
  margin: 0;
  font-size: clamp(var(--fs-2xl), 4.5vw, var(--fs-4xl));
  line-height: 1.12;
  letter-spacing: -.035em;
}
.downloads-hero > p:last-child,
.downloads-admin-header p {
  margin: var(--sp-sm) 0 0;
  color: var(--text-muted);
  font-size: var(--fs-lg);
}

.downloads-state {
  min-height: 128px;
  display: flex;
  align-items: center;
  gap: var(--sp-lg);
  padding: var(--sp-xl);
}
.downloads-state h2,
.downloads-state p { margin: 0 0 var(--sp-sm); }
.downloads-state p { color: var(--text-muted); }
.downloads-state__icon {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  display: grid;
  place-items: center;
  border-radius: var(--r-pill);
  background: var(--primary-50);
  color: var(--primary);
  font-size: var(--fs-xl);
  font-weight: 800;
}
.downloads-state--error { border-color: var(--danger-200); }
.downloads-state--error .downloads-state__icon {
  background: var(--danger-50);
  color: var(--danger-text);
}
.downloads-loading-skeleton {
  width: 100%;
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  align-items: center;
  gap: var(--sp-lg);
}
.downloads-loading-skeleton .skel-card { height: 64px; }
.downloads-loading-skeleton .skel-row:first-child { width: min(100%, 240px); }
.downloads-loading-skeleton .skel-row:last-child { width: min(100%, 460px); }

.downloads-tools {
  display: grid;
  gap: var(--sp-md);
  margin-bottom: var(--sp-2xl);
}
.downloads-search { width: min(100%, 620px); }
.downloads-search .btn { min-width: 44px; padding: 0; }
.downloads-filters {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding: 2px 0 var(--sp-xs);
  scrollbar-width: thin;
}

.downloads-category { margin-top: var(--sp-2xl); }
.downloads-category__heading {
  margin: 0 0 var(--sp-md);
  color: var(--text-muted);
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.downloads-products { display: grid; gap: var(--sp-lg); }
.downloads-product-card { padding: var(--sp-xl); }
.downloads-product-head {
  display: flex;
  justify-content: space-between;
  gap: var(--sp-xl);
}
.downloads-product {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-md);
}
.downloads-product__icon {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: grid;
  place-items: center;
  border-radius: var(--r-card);
  background: linear-gradient(145deg, var(--primary-500), var(--primary-800));
  color: var(--on-primary);
  font-size: var(--fs-xl);
  font-weight: 800;
  box-shadow: var(--e2);
}
.downloads-product h2 { margin: 0 0 var(--sp-xs); font-size: var(--fs-xl); }
.downloads-product p { margin: 0; color: var(--text-muted); }
.downloads-product__badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-content: flex-start;
  gap: var(--sp-xs);
}
.downloads-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sp-lg);
  margin: var(--sp-xl) 0;
  padding: var(--sp-lg) 0;
  border-block: 1px solid var(--border);
}
.downloads-fact dt {
  color: var(--text-muted);
  font-size: var(--fs-xs);
  font-weight: 650;
}
.downloads-fact dd {
  margin: 2px 0 0;
  font-weight: 750;
}
.downloads-product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
}
.downloads-versions {
  margin-top: var(--sp-lg);
  padding-top: var(--sp-md);
  border-top: 1px solid var(--border);
}
.downloads-version-table { width: 100%; border-collapse: collapse; }
.downloads-version-table th,
.downloads-version-table td {
  padding: 11px var(--sp-sm);
  border-bottom: 1px solid var(--border);
  text-align: left;
}
.downloads-version-table th { color: var(--text-muted); font-size: var(--fs-xs); }
.downloads-version-table a { color: var(--primary); font-weight: 750; }
.downloads-mobile-versions { display: none; }
.downloads-version-card {
  min-height: 60px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3px var(--sp-md);
  padding: var(--sp-md);
  border: 1px solid var(--border);
  border-radius: var(--r-field);
  color: var(--text);
  text-decoration: none;
}
.downloads-version-card small { color: var(--text-muted); }
.downloads-version-card__action {
  grid-row: 1 / span 2;
  grid-column: 2;
  align-self: center;
  color: var(--primary);
  font-size: var(--fs-xl);
}

.downloads-admin-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--sp-xl);
}
.downloads-admin-grid {
  display: grid;
  grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr);
  gap: var(--sp-xl);
  align-items: start;
}
.downloads-form {
  display: grid;
  gap: var(--sp-sm);
  padding: var(--sp-xl);
}
.downloads-form h2,
.downloads-metrics h2 { margin: 0 0 var(--sp-sm); }
.downloads-form-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-md);
}
.downloads-form-columns label {
  display: grid;
  gap: var(--sp-xs);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  font-weight: 650;
}
.downloads-form-columns--release { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.downloads-form-actions { display: flex; flex-wrap: wrap; gap: var(--sp-sm); }
.downloads-form-error {
  margin: var(--sp-xs) 0;
  color: var(--danger-text);
  font-size: var(--fs-sm);
  font-weight: 650;
}
.downloads-check {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: var(--sp-sm);
  font-weight: 650;
}
.downloads-check input { width: 20px; height: 20px; }
.downloads-record-list { display: grid; gap: var(--sp-sm); }
.downloads-record {
  padding: var(--sp-lg);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  box-shadow: var(--e1);
}
.downloads-record__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--sp-md);
}
.downloads-record__head h3 { margin: 0 0 3px; font-size: var(--fs-lg); }
.downloads-record p { margin: 0; color: var(--text-muted); }
.downloads-record__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--sp-xs);
}
.downloads-section-heading {
  display: flex;
  align-items: center;
  gap: var(--sp-sm);
  margin: var(--sp-2xl) 0 var(--sp-md);
}
.downloads-section-heading h2 { margin: 0; }
.downloads-release-form { margin-bottom: var(--sp-xl); }
.downloads-metrics { padding: var(--sp-xl); }
.downloads-metrics dl {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--sp-md);
  margin: 0;
}
.downloads-metrics dt { color: var(--text-muted); }
.downloads-metrics dd { margin: 0; font-weight: 750; }

@container downloads-viewport (max-width: 1024px) {
  .downloads-admin-grid { grid-template-columns: 1fr; }
  .downloads-form-columns--release { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@container downloads-viewport (max-width: 768px) {
  .downloads-topbar__inner,
  .downloads-shell { width: min(100% - 28px, 1180px); }
  .downloads-topbar__inner { min-height: 62px; gap: var(--sp-sm); }
  .downloads-nav { display: none; }
  .downloads-topbar .status-chip { margin-left: auto; }
  .downloads-topbar .status-chip span:last-child { max-width: 112px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .downloads-shell { padding-top: var(--sp-2xl); }
  .downloads-product-card { padding: var(--sp-lg); }
  .downloads-product-head { display: grid; gap: var(--sp-md); }
  .downloads-product__badges { justify-content: flex-start; padding-left: 64px; }
  .downloads-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .downloads-fact:first-child { grid-column: 1 / -1; }
  .downloads-product-actions .btn { flex: 1 1 100%; }
  .downloads-version-table { display: none; }
  .downloads-mobile-versions { display: grid; gap: var(--sp-sm); }
  .downloads-admin-header { display: grid; }
  .downloads-form-columns,
  .downloads-form-columns--release { grid-template-columns: 1fr; }
  .downloads-record__head { display: grid; }
  .downloads-record__actions { justify-content: flex-start; }
}
