/* UX4.4 G – Mobile Layout Hotfix
   Repairs narrow-card layouts independently from browser zoom and viewport scaling. */

/* Score overlays use the unbranded heart artwork; keep their content in a safe zone. */
.lm-heart:has(.lm-heart__content) .lm-heart__content{
  inset:0;
  min-width:0;
  flex-wrap:nowrap;
  overflow-wrap:normal;
  word-break:normal;
}
.lm-heart--hero .lm-heart__content{
  align-items:center;
  padding-top:1.5%;
}
.lm-heart--hero .lm-heart__content strong{
  font-size:clamp(2.55rem,15vw,4.4rem);
  line-height:1;
}
.lm-heart--hero .lm-heart__content span{
  font-size:clamp(1rem,4vw,1.35rem);
}
.lm-heart--hero .lm-heart__content small{
  top:68%;
  max-width:78%;
  text-align:center;
  white-space:nowrap;
}

/* Matching bridge: always occupies the complete grid row on compact layouts. */
@media (max-width:850px){
  .match-stage{
    grid-template-columns:minmax(0,1fr);
    align-items:stretch;
  }
  .heart-bridge{
    width:100%;
    min-width:0;
    height:auto;
    min-height:150px;
    padding:10px 0;
    justify-self:stretch;
    overflow:visible;
  }
  .heart-bridge .lm-heart--bridge{
    --lm-heart-size:150px;
    width:var(--lm-heart-size);
    max-width:55vw;
    height:auto;
    aspect-ratio:1;
    margin-inline:auto;
  }
  .heart-bridge .lm-heart__content{
    font-size:.78rem;
    white-space:nowrap;
  }
}

@media (max-width:420px){
  .match-stage{width:calc(100% - 20px);gap:16px}
  .heart-bridge{min-height:132px;padding:4px 0}
  .heart-bridge .lm-heart--bridge{--lm-heart-size:132px;max-width:48vw}
  .result-preview .score-heart{width:min(190px,64vw);height:auto;aspect-ratio:1.08}
}

/* The advanced visualization sizes itself from its own card, not the viewport. */
.advanced-visualizations{
  container-type:inline-size;
  container-name:advanced-visualization;
  min-width:0;
}
.advanced-visualizations__top,
.advanced-visualizations__copy,
.visual-coverage,
.visual-coverage__labels{
  min-width:0;
}
.advanced-visualizations__copy h3,
.advanced-visualizations__copy p,
.visual-coverage__labels span{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:auto;
}
.visual-status-badge{
  max-width:100%;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  text-align:center;
}

@container advanced-visualization (max-width:430px){
  .advanced-visualizations__top{
    grid-template-columns:1fr;
    justify-items:center;
    gap:16px;
    text-align:center;
  }
  .advanced-visualizations__copy{
    width:100%;
    justify-items:center;
  }
  .visual-status-badge{
    justify-self:center;
    width:auto;
    white-space:nowrap;
  }
  .visual-score-ring{width:min(132px,46cqw)}
  .visual-coverage__labels{flex-wrap:wrap;justify-content:center;text-align:center}
}

/* Fallback for browsers without container queries and very narrow viewports. */
@supports not (container-type:inline-size){
  @media (max-width:560px){
    .advanced-visualizations__top{grid-template-columns:1fr;justify-items:center;text-align:center}
    .advanced-visualizations__copy{justify-items:center}
    .visual-status-badge{justify-self:center;white-space:nowrap}
  }
}

/* Prevent the dashboard side card from shrinking its descendants below usability. */
.analysis-dashboard__summary,
.analysis-dashboard__overview,
.analysis-dashboard__summary > *{
  min-width:0;
}
@media (max-width:760px){
  .analysis-dashboard__overview{grid-template-columns:minmax(0,1fr)}
  .analysis-dashboard__summary{width:100%}
}

@media (max-width:380px){
  .analysis-dashboard__summary{padding:16px 14px}
  .analysis-dashboard__stats{grid-template-columns:1fr}
  .analysis-dashboard__legend{display:grid;grid-template-columns:1fr}
  .advanced-visualizations{padding:14px 12px}
}
