.irf-data { color: #161616; font-size: 14px; line-height: 1.7; }
.irf-data h2 { margin: 0 0 20px; font-size: 21px; line-height: 1.5; }
.irf-data h3 { margin: 0 0 12px; font-size: 15px; }
.irf-section { margin: 0 0 48px; }
.irf-status { margin: 0 0 30px; padding: 15px 18px; border-left: 3px solid #397f72; background: #f3f7f5; color: #38564e; }
.irf-status strong { font-weight: 700; }
.irf-note { margin: 12px 0 0; color: #696b67; font-size: 12px; line-height: 1.8; }
.irf-unit { margin: 0 0 8px; text-align: right; color: #696b67; font-size: 12px; }
.irf-kpis, .irf-cagrs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.irf-kpi { padding: 24px 0; border-top: 1px solid #d6ddd9; border-bottom: 1px solid #d6ddd9; }
.irf-kpi p { margin: 0; }
.irf-period { font-size: 12px; color: #696b67; }
.irf-number { display: block; font-family: Inter, sans-serif; font-size: 36px; font-weight: 600; line-height: 1.3; margin: 7px 0; letter-spacing: -.025em; }
.irf-number small { margin-left: 6px; font-size: 12px; font-weight: 400; letter-spacing: 0; }
.irf-next { margin-top: 18px !important; padding-top: 14px; border-top: 1px solid #ececea; font-size: 13px; }
.irf-next strong { display: block; margin-top: 4px; font-family: Inter, sans-serif; font-size: 22px; }
.irf-table-wrap { width: 100%; overflow-x: auto; border-top: 1px solid #343a36; }
.irf-table { width: 100%; min-width: 670px; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.irf-table th, .irf-table td { padding: 16px 14px; text-align: right; border-bottom: 1px solid #e3e7e4; white-space: nowrap; }
.irf-table thead th { font-size: 12px; font-weight: 500; color: #535952; }
.irf-table tbody th, .irf-table thead th:first-child { text-align: left; }
.irf-table tbody th { font-weight: 500; }
.irf-table td { font-family: Inter, sans-serif; }
.irf-table .irf-forecast { background: #f1f6f3; }
.irf-table thead .irf-forecast { color: #276353; font-weight: 700; }
.irf-ratio th, .irf-ratio td { font-size: 12px; color: #696b67; }
.irf-scroll { display: none; margin: 0 0 8px; font-size: 11px; color: #696b67; }
.irf-chart { margin: 0; }
.irf-chart svg { display: block; width: 100%; height: auto; font-family: Inter, 'Noto Sans JP', sans-serif; overflow: visible; }
.irf-legend { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0 0 16px; font-size: 12px; color: #5a5a56; }
.irf-legend span { display: inline-flex; align-items: center; gap: 7px; }
.irf-key { display: inline-block; width: 11px; height: 11px; background: #444846; }
.irf-key-gross, .irf-key-operating { background: #aaaead; }
.irf-key-rate { width: 18px; height: 2px; background: #30796a; }
.irf-key-forecast { background: #ecefec; border: 1px dashed #666d68; box-sizing: border-box; }
.irf-cagrs { border-top: 1px solid #d6ddd9; padding-top: 20px; gap: 20px; }
.irf-cagrs--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.irf-cagrs p { margin: 0; font-size: 12px; color: #5a5a56; }
.irf-cagrs strong { display: block; margin-top: 8px; color: #276353; font-family: Inter, sans-serif; font-size: 44px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.irf-cagrs small { margin-left: 2px; font-size: 16px; }
.irf-mobile { padding: 0 20px 36px; }
@media (max-width: 1024px) {
  .irf-data h2 { font-size: 18px; margin-bottom: 16px; }
  .irf-section { margin-bottom: 36px; }
  .irf-status { font-size: 12px; padding: 12px 14px; margin-bottom: 24px; }
  .irf-kpis { grid-template-columns: 1fr; gap: 16px; }
  .irf-kpi { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; padding: 18px 0; }
  .irf-kpi h3 { grid-column: 1 / -1; }
  .irf-number { font-size: 27px; }
  .irf-number small { display: block; margin-left: 0; font-size: 11px; }
  .irf-next { margin-top: 0 !important; padding: 0 0 0 16px; border-top: 0; border-left: 1px solid #e3e7e4; font-size: 11px; }
  .irf-next strong { font-size: 23px; }
  .irf-period { font-size: 11px; }
  .irf-table { font-size: 12px; }
  .irf-table th, .irf-table td { padding: 13px 12px; }
  .irf-scroll { display: block; }
  .irf-legend { gap: 7px 14px; font-size: 11px; }
  .irf-cagrs { gap: 12px; }
  .irf-cagrs strong { font-size: clamp(26px, 8vw, 32px); }
  .irf-cagrs small { font-size: 12px; }
  .irf-cagrs p { font-size: 10px; }
}
