/* forecast_range列：中身がSVGなので余白/縦位置を調整 */
table.ipo_list tr td.forecast_range{
  padding: 1px 3px !important;
  vertical-align: middle;
}

/* SVGをセル幅にフィットさせる（はみ出し＆潰れ防止） */
svg.forecast_svg{
  display: block;
  width: 100%;
  height: 80px;      /* PC基準 */
  max-width: 460px;  /* PHPのW=460に合わせる */
  margin: 0 auto;
}

/* SVGの文字が読みづらい時の微調整 */
svg.forecast_svg text{
  dominant-baseline: middle;
  font-size: 16px;
}

/* table-layout: fixed 対策（PC）：
   forecast_rangeの幅を確保しないとSVG列が潰れやすい */
@media only screen and (min-width: 768px) {
  table.ipo_list tr th.forecast_range,
  table.ipo_list tr td.forecast_range{
    width: 320px !important; /* 260〜360で好み調整 */
  }
}

/* スマホ最適化：高さを落として収まり優先 */
@media (max-width: 768px) {
  svg.forecast_svg{
    height: 50px;
    max-width: 180px;
  }
  svg.forecast_svg text{
    font-size: 20px;
  }
}
