/* Status summaries only. Constrain the grid track as well as its descendants:
   min-width:0 on a row alone cannot shrink an implicit min-content grid track. */
#app :is(.machine-card,.sp-item,.tf-card),
#app :is(.machine-card,.sp-item,.tf-card) :is(.machine-card-info,.sp-card-info,.pending-parts-summary){
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:380px){
  #app :is(.machine-card,.sp-item,.tf-card){
    padding-left:10px!important;
    padding-right:10px!important;
  }
}
#app :is(.machine-card,.sp-item) :is(.machine-card-info,.sp-card-info){
  grid-template-columns:minmax(0,1fr)!important;
}
#app :is(.machine-card,.sp-item,.tf-card) :is(.sp-info-row,.tf-info-row){
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:620px){
  #app :is(.machine-card,.sp-item,.tf-card) :is(.sp-info-row,.tf-info-row){
    align-items:baseline!important;
    gap:5px!important;
  }
  #app :is(.machine-card,.sp-item,.tf-card) :is(.sp-info-row,.tf-info-row)>span{
    flex:0 0 60px!important;
  }
  /* Short facts can wrap at narrow widths; long notes retain summary ellipsis. */
  #app :is(.machine-card,.sp-item) :is(.machine-card-info,.sp-card-info)>.sp-info-row:not(.desc-row)>b,
  #app .tf-card>.tf-info-row:not(.desc-row)>b{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    line-height:1.4!important;
  }
}
