:root {
  --background: #f5f5f5;
  --foreground: #222222;
  --card: #ffffff;
  --card-foreground: #222222;
  --popover: #ffffff;
  --popover-foreground: #222222;
  --primary: #23773e;
  --primary-foreground: #ffffff;
  --secondary: #eeeeee;
  --secondary-foreground: #222222;
  --muted: #f1f1f1;
  --muted-foreground: #666666;
  --accent: #edf6ef;
  --accent-foreground: #18582d;
  --destructive: #b42318;
  --border: #d5d5d5;
  --input: #c8c8c8;
  --ring: #23773e;
  --radius: 0;
}

@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --color-card: var(--card);
  --color-card-foreground: var(--card-foreground);
  --color-popover: var(--popover);
  --color-popover-foreground: var(--popover-foreground);
  --color-primary: var(--primary);
  --color-primary-foreground: var(--primary-foreground);
  --color-secondary: var(--secondary);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-muted: var(--muted);
  --color-muted-foreground: var(--muted-foreground);
  --color-accent: var(--accent);
  --color-accent-foreground: var(--accent-foreground);
  --color-destructive: var(--destructive);
  --color-border: var(--border);
  --color-input: var(--input);
  --color-ring: var(--ring);
  --font-sans: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--foreground);
  background: var(--background);
  font-family: var(--font-sans);
  font-size: 16px;
}

a {
  color: inherit;
  text-decoration: none;
}

table {
  width: 100%;
  border-spacing: 0;
  text-indent: 0;
}

th {
  text-align: left;
}

.site-header {
  border-top: 4px solid #23773e;
  border-bottom: 1px solid #d2d2d2;
  background: #ffffff;
}

.header-inner {
  width: min(100% - 32px, 980px);
  min-height: 58px;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.site-name {
  color: #1f6336;
  font-size: 1.08rem;
  font-weight: 800;
}

.header-inner nav {
  display: flex;
  gap: 22px;
  color: #555;
  font-size: .8rem;
}

.header-inner nav a:hover {
  color: #23773e;
  text-decoration: underline;
}

.page-shell {
  width: min(100% - 32px, 980px);
  margin: 0 auto;
  padding: 26px 0 48px;
}

.page-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}

h1 {
  margin: 0;
  font-size: 1.55rem;
  line-height: 1.35;
}

.page-heading p {
  margin: 6px 0 0;
  color: #666;
  font-size: .82rem;
  line-height: 1.7;
}

.page-heading > span {
  flex: none;
  padding: 4px 8px;
  border: 1px solid #bcbcbc;
  color: #555;
  background: #fff;
  font-size: .72rem;
}

.day-section {
  margin-top: 22px;
}

.day-section:first-child {
  margin-top: 0;
}

.day-section h2 {
  height: 42px;
  margin: 0;
  padding: 0 12px;
  display: flex;
  align-items: center;
  gap: 11px;
  color: #fff;
  background: #2c6940;
  font-size: 1rem;
}

.relative-day {
  min-width: 44px;
  padding: 3px 7px;
  color: #1c5530;
  background: #fff;
  text-align: center;
  font-size: .7rem;
  font-weight: 800;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
}

.match-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border: 1px solid #cfcfcf;
  background: #fff;
}

.match-table th,
.match-table td {
  border-right: 1px solid #dedede;
}

.match-table th:last-child,
.match-table td:last-child {
  border-right: 0;
}

.match-table th {
  height: 34px;
  padding: 0 9px;
  color: #555;
  background: #ededed;
  font-size: .72rem;
  font-weight: 700;
}

.match-table tr {
  height: 48px;
}

.match-table tbody tr:nth-child(even) {
  background: #fafafa;
}

.match-table tbody tr:hover {
  background: #f1f8f3;
}

.match-table tbody tr.japanese-match,
.match-table tbody tr.japanese-match:nth-child(even) {
  background: #fffdf0;
}

.match-table tbody tr.japanese-match:hover {
  background: #fff8cf;
}

.match-table tbody tr.japanese-match .time-cell {
  box-shadow: inset 3px 0 0 #d4a500;
}

.match-table tbody tr.live-match,
.match-table tbody tr.live-match:nth-child(even) {
  background: #fff0f0;
}

.match-table tbody tr.live-match:hover {
  background: #ffe7e7;
}

.match-table tbody tr.live-match .time-cell {
  box-shadow: inset 3px 0 0 #d92d20;
}

.match-table td {
  padding: 7px 9px;
  font-size: .82rem;
}

.time-column {
  width: 72px;
}

.competition-column {
  width: 112px;
}

.broadcast-column {
  width: 150px;
}

.time-cell {
  font-size: .92rem !important;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.time-cell > span {
  display: block;
}

.live-badge {
  width: fit-content;
  margin-top: 3px;
  padding: 1px 4px;
  color: #fff;
  background: #d92d20;
  font-size: .56rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: .04em;
}

.status-badge {
  width: fit-content;
  margin-top: 3px;
  padding: 1px 4px;
  color: #fff;
  background: #6b7280;
  font-size: .56rem;
  font-weight: 800;
  line-height: 1.25;
}

.status-cancelled {
  background: #555;
}

.status-suspended {
  background: #a15c00;
}

.competition-cell {
  color: #59615c;
  font-size: .74rem !important;
  line-height: 1.35;
  white-space: nowrap;
}

.fixture {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
}

.fixture > i {
  padding-top: 2px;
  color: #999;
  text-align: center;
  font-size: .65rem;
  font-style: normal;
  font-weight: 500;
}

.team {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.team-home {
  align-items: flex-end;
  text-align: right;
}

.team-away {
  align-items: flex-start;
  text-align: left;
}

.team-name {
  font-weight: 650;
  line-height: 1.35;
}

.team-player {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #b02a32;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.25;
}

.japan-flag {
  width: 17px;
  height: 11px;
  flex: none;
  position: relative;
  display: inline-block;
  border: 1px solid #d1d1d1;
  background: #fff;
  box-shadow: 0 1px 1px rgb(0 0 0 / 7%);
}

.japan-flag::after {
  content: "";
  width: 5px;
  height: 5px;
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 50%;
  background: #bc002d;
  transform: translate(-50%, -50%);
}

.broadcast-badge {
  white-space: normal;
}

.broadcast {
  display: inline-block;
  min-width: 58px;
  margin: 1px 3px 1px 0;
  padding: 4px 7px;
  border: 1px solid #aaa;
  border-radius: 4px;
  color: #333;
  background: #fff;
  text-align: center;
  font-size: .64rem;
  font-weight: 800;
  line-height: 1.1;
  transition: filter .15s ease, box-shadow .15s ease;
}

.broadcast:hover {
  filter: brightness(.92);
  text-decoration: none;
}

.broadcast:focus-visible {
  outline: 2px solid #111;
  outline-offset: 2px;
}

.broadcast-unext {
  color: #fff;
  border-color: #111;
  background: #111;
}

.broadcast-wowow {
  color: #fff;
  border-color: #0068b7;
  background: #0068b7;
}

.broadcast-dazn {
  color: #111;
  border-color: #111;
  background: #f5ff00;
}

.broadcast-abema {
  color: #fff;
  border-color: #1876c9;
  background: #1876c9;
}

.empty-broadcast {
  color: #aaa;
}

.mobile-details {
  display: none;
}

.notice {
  margin: 0 0 18px;
  padding: 9px 11px;
  border-left: 3px solid #9a9a9a;
  color: #626262;
  background: #ededed;
  font-size: .75rem;
  line-height: 1.6;
}

.notice p {
  margin: 2px 0;
}

.notice-warning {
  color: #9b2c2c;
  font-weight: 700;
}

.updated-at {
  color: #777;
  text-align: right;
}

.empty-day {
  height: 64px;
  color: #888;
  text-align: center;
}

.no-upcoming-matches {
  padding: 28px 16px;
  border: 1px solid #d5d5d5;
  color: #777;
  background: #fff;
  text-align: center;
  font-size: .82rem;
}

.about {
  margin-top: 38px;
  padding: 18px 20px;
  border: 1px solid #d5d5d5;
  background: #fff;
}

.about h2 {
  margin: 0 0 7px;
  font-size: 1rem;
}

.about p {
  margin: 0;
  color: #666;
  font-size: .78rem;
  line-height: 1.8;
}

.about p + p {
  margin-top: 8px;
}

footer {
  padding: 24px 16px;
  border-top: 1px solid #ddd;
  color: #888;
  background: #fff;
  text-align: center;
  font-size: .7rem;
}

@media (max-width: 680px) {

  .header-inner {
    width: min(100% - 24px, 980px);
    min-height: 52px;
  }

  .header-inner nav {
    display: none;
  }

  .page-shell {
    width: min(100% - 20px, 980px);
    padding-top: 19px;
  }

  .page-heading {
    align-items: flex-start;
    margin-bottom: 16px;
  }

  h1 {
    font-size: 1.18rem;
  }

  .page-heading p {
    font-size: .72rem;
  }

  .page-heading > span {
    display: none;
  }

  .day-section {
    margin-top: 17px;
  }

  .day-section h2 {
    height: 38px;
    padding: 0 9px;
    font-size: .88rem;
  }

  .match-table tr {
    height: 62px;
  }

  .match-table th {
    padding: 0 6px;
  }

  .match-table td {
    padding: 7px 6px;
  }

  .time-column {
    width: 59px;
  }

  .broadcast-column,
  .broadcast-cell {
    display: none;
  }

  .competition-column {
    width: 62px;
  }

  .competition-cell {
    width: 62px;
    font-size: .64rem !important;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .time-cell {
    font-size: .82rem !important;
  }

  .fixture-cell {
    white-space: normal;
  }

  .fixture {
    grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr);
    gap: 5px;
    font-size: .76rem;
  }

  .team-player {
    gap: 4px;
    font-size: .66rem;
  }

  .japan-flag {
    width: 15px;
    height: 10px;
  }

  .mobile-details {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin-top: 5px;
  }

  .mobile-details .broadcast {
    min-width: 42px;
    padding: 2px 4px;
    font-size: .55rem;
  }

  .notice {
    line-height: 1.6;
  }

  .about {
    margin-top: 28px;
    padding: 15px;
  }

}