.ope-stats {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  color: #222;
  line-height: 1.5;
}

.ope-stats__wrap {
  max-width: 1000px;
  margin: 0 auto;
  border-radius: 10px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.10);
  overflow: hidden;
}

/* PC用テーブル：表示 */
.ope-stats__pc { display: block; }
/* スマホ用カード：非表示（PC時） */
.ope-stats__sp { display: none; }

/* ════════════════════════════════
   PC テーブルスタイル
   ════════════════════════════════ */
.ope-stats__table {
  width: 100%;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  background: #fff;
  table-layout: fixed;
}

.ope-stats__table thead tr.ost-row-group th {
  background: #2c6e8a;
  color: #fff !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em;
  padding: 16px 8px !important;
  text-align: center;
  border-bottom: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
}
.ope-stats__table thead tr.ost-row-group th:first-child {
  width: 36%;
  background: #1a4a5e;
  vertical-align: middle !important;
}

.ope-stats__table thead tr.ost-row-years th {
  background: #4a9ab8;
  color: #fff !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  padding: 12px 6px !important;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.4) !important;
  border-top: none !important;
  border-left: none !important;
  border-bottom: none !important;
}
.ope-stats__table thead tr.ost-row-years th:last-child {
  border-right: none !important;
}

.ope-stats__table tbody tr { border-bottom: 1px solid #ccdde5; }
.ope-stats__table tbody tr:last-child { border-bottom: none; }
.ope-stats__table tbody tr:nth-child(even) td { background: #eaf4f8; }
.ope-stats__table tbody tr:nth-child(odd)  td { background: #fff; }
.ope-stats__table tbody tr:hover td { background: #c8e6f0; transition: background 0.15s; }

.ope-stats__table tbody td {
  padding: 10px 6px !important;
  font-size: 1.5rem !important;
  line-height: 1.6 !important;
  color: #000 !important;
  border-right: 1px solid #b8d0da !important;
  border-top: none !important;
  border-bottom: none !important;
  border-left: none !important;
  text-align: center;
  word-break: break-all;
  margin: 0;
}
.ope-stats__table tbody td:first-child {
  text-align: center !important;
  padding-left: 8px !important;
  font-size: 1.5rem !important;
  color: #000 !important;
  font-weight: 600 !important;
  border-right: 3px solid #4a9ab8 !important;
  word-break: keep-all;
  line-height: 1.7 !important;
}
.ope-stats__table tbody td:last-child { border-right: none !important; }

.ope-stats__table tbody tr.ost-highlight td {
  background: #b8dcea !important;
  font-weight: 700 !important;
  color: #000 !important;
  border-bottom: none !important;
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
.ope-stats__table tbody tr.ost-highlight td:first-child {
  border-left: 5px solid #2c6e8a !important;
  background: #a0cfe0 !important;
  text-align: center !important;
}
.ope-stats__table tbody tr.ost-highlight td:not(:first-child) {
  color: #000 !important;
}
.ope-stats__table tbody tr.ost-highlight:hover td { background: #8ec4d8 !important; }

.ope-stats__table tbody tr.ost-sub td {
  color: #000 !important;
}
.ope-stats__table tbody tr.ost-sub td:first-child {
  padding-left: 16px !important;
  padding-right: 12px !important;
  font-size: 1.5rem !important;
  color: #000 !important;
  font-weight: 600 !important;
  border-left: none !important;
  text-align: right !important;
}
.ope-stats__table tbody tr.ost-sub td:not(:first-child) {
  font-size: 1.5rem !important;
  color: #000 !important;
}
.ope-stats__table tbody tr.ost-sub:hover td { background: #c8e6f0 !important; }

.ope-stats__table tbody tr.ost-total td {
  background: #1a4a5e !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 1.5rem !important;
  letter-spacing: 0.06em;
  padding: 14px 6px !important;
  border-right: 1px solid rgba(255,255,255,0.3) !important;
}
.ope-stats__table tbody tr.ost-total td:first-child {
  text-align: center !important;
  border-right: 2px solid rgba(255,255,255,0.5) !important;
  border-left: none !important;
  background: #0e2e3d !important;
}

/* ════════════════════════════════
   スマホ用カードスタイル（560px以下）
   ════════════════════════════════ */
@media (max-width: 560px) {

  .ope-stats__wrap {
    box-shadow: none;
    border-radius: 0;
    background: transparent;
    padding: 0 4px;
    overflow: visible;
  }

  .ope-stats__pc { display: none !important; }
  .ope-stats__sp { display: block !important; }

  .sp-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.10);
    margin-bottom: 14px;
    overflow: hidden;
  }

  .sp-card__title {
    background: #2c6e8a;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 700;
    padding: 12px 16px;
    line-height: 1.5;
    word-break: keep-all;
    text-align: center;
  }
  .sp-card__title .sp-sub-label {
    display: block;
    font-size: 1.2rem;
    font-weight: 500;
    color: rgba(255,255,255,0.85);
    margin-top: 2px;
  }

  .sp-card__grid {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    border-top: 1px solid #ccdde5;
  }

  .sp-card__cell {
    text-align: center;
    padding: 10px 4px;
    border-right: 1px solid #ccdde5;
    box-sizing: border-box;
  }
  .sp-card__cell:last-child { border-right: none; }

  .sp-card__year {
    display: block;
    font-size: 1.0rem;
    font-weight: 700;
    color: #4a9ab8;
    margin-bottom: 4px;
  }

  .sp-card__num {
    display: block;
    font-size: 1.5rem;
    font-weight: 700;
    color: #000;
    line-height: 1.4;
  }

  .sp-card__sub-num {
    display: block;
    font-size: 1.1rem;
    color: #2c6e8a;
    line-height: 1.4;
  }

  .sp-card--highlight {
    box-shadow: 0 4px 16px rgba(44,110,138,0.30);
    border: 2px solid #4a9ab8;
  }
  .sp-card--highlight .sp-card__title {
    background: #1a4a5e;
    font-size: 1.5rem;
    padding: 18px 16px;
  }
  .sp-card--highlight .sp-card__cell { background: #d4ecf5; }
  .sp-card--highlight .sp-card__year { color: #2c6e8a; }

  .sp-card--sub {
    margin-left: 0;
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.10);
    border-left: none;
  }
  .sp-card--sub .sp-card__title {
    background: #2c6e8a;
    font-size: 1.5rem;
    text-align: center;
  }
  .sp-card--sub .sp-card__cell { background: #fff; }
  .sp-card--sub .sp-card__year { color: #4a9ab8; }

  .sp-card--total {
    box-shadow: 0 4px 14px rgba(26,74,94,0.35);
    margin-top: 6px;
  }
  .sp-card--total .sp-card__title {
    background: #0e2e3d;
    font-size: 1.5rem;
    text-align: center;
    letter-spacing: 0.15em;
  }
  .sp-card--total .sp-card__cell {
    background: #1a4a5e;
    border-right-color: rgba(255,255,255,0.2);
  }
  .sp-card--total .sp-card__year { color: rgba(255,255,255,0.75); }
  .sp-card--total .sp-card__num  { color: #fff; }
}
