:root {
  --border: #e6e6e6;
  --bg: #ffffff;
  --text: #111827;
  --muted: #6b7280;

  --ok-bg: #e8f7ee;
  --ok-bd: #16a34a;
  --ok-tx: #166534;

  --low-bg: #fff7ed;
  --low-bd: #f97316;
  --low-tx: #9a3412;

  --full-bg: #f3f4f6;
  --full-bd: #9ca3af;
  --full-tx: #374151;

  --head-bg: #f8fafc;
  --link: #2563eb;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color: var(--text);
  background: #fbfbfb;
}

.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 18px 14px 40px;
}

.page-title {
  font-size: 20px;
  margin: 0 0 14px;
}

/* PC/SP 表示切り替え */
.only-pc {
  display: block;
}

.only-sp {
  display: none;
}

@media (max-width: 768px) {
  .only-pc {
    display: none;
  }

  .only-sp {
    display: block;
  }
}

/* テーブル共通 */
.table {
  width: 100%;
  border-collapse: collapse;
  background: var(--bg);
}

.table th,
.table td {
  border: 1px solid var(--border);
  padding: 10px 10px;
  text-align: left;
  vertical-align: top;
}

.table th {
  background: var(--head-bg);
  font-weight: 800;
}

/* PC表のラップ（必要なら横スクロール対応） */
.pc-tablewrap {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--bg);
}

/* イベントの区切り（PCの先頭行だけ少し背景） */
/*.table--pc tr.is-event-head td {
  background: #fafafa;
}*/

/* バッジ共通 */
.badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  border: 1px solid var(--border);
  line-height: 1.2;
  white-space: nowrap;
}

.badge.is-ok {
  background: var(--ok-bg);
  border-color: var(--ok-bd);
  color: var(--ok-tx);
}

.badge.is-low {
  background: var(--low-bg);
  border-color: var(--low-bd);
  color: var(--low-tx);
}

.badge.is-full {
  background: var(--full-bg);
  border-color: var(--full-bd);
  color: var(--full-tx);
  opacity: .9;
}

/* リンク見た目（PCセル＆スマホカード共通） */
.cell-link,
.card-link {
  color: var(--link);
  text-decoration: underline;
  font-weight: 900;
}

.cell-link:hover,
.card-link:hover {
  opacity: .8;
}

/* スマホ：カード */
@media (max-width: 768px) {
  .card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px;
    margin-bottom: 14px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .05);
  }

  .card__company {
    font-size: 13px;
    color: var(--muted);
  }

  .card__event {
    font-size: 16px;
    font-weight: 900;
    margin-top: 4px;
    line-height: 1.35;
  }

  /* スマホ：縦積み（thead消して td にラベル） */
  .table--sp thead {
    display: none;
  }

  .table--sp,
  .table--sp tbody,
  .table--sp tr,
  .table--sp td {
    display: block;
    width: 100%;
  }

  .table--sp tr {
    border-top: 1px solid #eee;
    padding: 8px 0;
  }

  .table--sp td {
    border: 0;
    padding: 8px 0;
    display: flex;
    gap: 12px;
    align-items: center;
  }

  .table--sp td::before {
    content: attr(data-label);
    flex: 0 0 4.5em;
    color: var(--muted);
    font-weight: 900;
  }


  .card__head {
    background: var(--head-bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 10px 12px;
    margin: -6px -6px 10px;
    /* カード内で“帯”っぽく見せる */
  }

  .card__company {
    margin: 0;
  }

  .card__event {
    margin-top: 4px;
  }

}