.module-composition{
  margin-top:12px;
  padding:10px 12px;
  border-top:1px solid rgba(148,163,184,0.4);
  font-size:12px;
}
.module-composition h4{
  margin:0 0 6px 0;
  font-size:11px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  opacity:0.8;
}
.module-composition .mc-tech-list{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin:0 0 8px 0;
  padding:0;
  list-style:none;
}
.module-composition .mc-tech-pill{
  padding:2px 6px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,0.6);
  font-size:11px;
  opacity:0.9;
}
.module-composition .mc-items{
  margin:0;
  padding:0;
  list-style:none;
}
.module-composition .mc-item-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  margin-bottom:3px;
}
.module-composition .mc-item-main{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.module-composition .mc-item-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  flex-shrink:0;
}
.module-composition .mc-item-dot.ok{
  background:#10b981;
}
.module-composition .mc-item-dot.partial{
  background:#facc15;
}
.module-composition .mc-item-dot.missing{
  background:#f97373;
}
.module-composition .mc-item-label{
  white-space:nowrap;
  text-overflow:ellipsis;
  overflow:hidden;
}
.module-composition .mc-item-meta{
  font-size:11px;
  opacity:0.75;
}
.module-composition .mc-summary{
  margin-top:8px;
  display:flex;
  justify-content:space-between;
  font-size:11px;
  opacity:0.85;
}
.module-composition .mc-progress-bar{
  margin-top:6px;
  width:100%;
  height:4px;
  border-radius:999px;
  background:rgba(15,23,42,1);
  overflow:hidden;
}
.module-composition .mc-progress-fill{
  height:100%;
  border-radius:999px;
  background:#38bdf8;
}
