/* 即時比分頁 */
.sb-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.sport-tabs { display: flex; gap: 10px; flex-wrap: wrap; }
.sport-tab {
  display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: 10px; align-items: center;
  text-align: left; padding: 10px 16px; border-radius: 12px; border: 1px solid var(--line);
  background: var(--card); color: var(--text); cursor: pointer; font-family: inherit; min-width: 150px;
}
.sport-tab .ico { grid-row: 1 / 3; font-size: 1.6rem; }
.sport-tab b { font-size: 1rem; }
.sport-tab small { color: var(--muted); font-size: .75rem; }
.sport-tab.active { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); background: rgba(34,211,166,.06); }

.refresh { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: .85rem; }
.pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--up); box-shadow: 0 0 0 0 rgba(34,197,94,.6); animation: pulse 2s infinite; }
.pulse.err { background: var(--down); animation: none; }
@keyframes pulse { 70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }

.filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.chip { padding: 6px 14px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--muted); cursor: pointer; font-family: inherit; font-size: .9rem; }
.chip span { opacity: .7; margin-left: 2px; }
.chip.active { background: var(--text); color: var(--bg); border-color: var(--text); }
.chip:disabled { opacity: .35; cursor: default; }

.day { margin-bottom: 28px; }
.day-head { display: flex; align-items: baseline; gap: 10px; margin: 0 0 10px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.day-head h3 { margin: 0; font-size: 1.05rem; }
.day-head .rel { font-size: .75rem; font-weight: 700; color: var(--brand); background: rgba(34,211,166,.12); padding: 2px 8px; border-radius: 999px; }
.day-head .n { margin-left: auto; color: var(--muted); font-size: .8rem; }

.games { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 10px; }
@media (max-width: 420px) { .games { grid-template-columns: 1fr; } }

.g {
  display: grid; grid-template-columns: 76px 1fr; align-items: stretch;
  background: var(--card); border: 1px solid var(--line); border-radius: 12px; overflow: hidden;
}
.g.live { border-color: rgba(239,68,68,.55); box-shadow: 0 0 0 1px rgba(239,68,68,.25); }
.g-when { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 2px; padding: 10px 6px; background: var(--bg2); border-right: 1px solid var(--line); text-align: center; }
.g-when .t { font-weight: 800; font-size: 1rem; }
.g-when .s { font-size: .72rem; color: var(--muted); line-height: 1.3; }
.g.live .g-when .t { color: var(--down); }
.g.live .g-when .t::before { content: "● "; animation: blink 1.2s infinite; }
@keyframes blink { 50% { opacity: .25; } }

.g-body { padding: 10px 14px; display: grid; gap: 6px; }
.tm { display: grid; grid-template-columns: 26px 1fr auto; align-items: center; gap: 10px; }
.tm img { width: 26px; height: 26px; object-fit: contain; }
.tm .ab { width: 26px; height: 26px; border-radius: 6px; background: var(--bg2); border: 1px solid var(--line); display: grid; place-items: center; font-size: .6rem; font-weight: 800; color: var(--muted); }
.tm .nm { min-width: 0; line-height: 1.25; }
.tm .nm b { display: block; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tm .nm small { color: var(--muted); font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
.tm .sc { font-size: 1.35rem; font-weight: 900; font-variant-numeric: tabular-nums; min-width: 2ch; text-align: right; }
.tm.lose { opacity: .55; }
.tm.win .sc { color: var(--text); }
.tm .ha { font-size: .65rem; color: var(--muted); border: 1px solid var(--line); border-radius: 4px; padding: 0 4px; margin-left: 6px; vertical-align: middle; font-weight: 500; }
.g-foot { display: flex; justify-content: space-between; font-size: .72rem; color: var(--muted); border-top: 1px dashed var(--line); padding-top: 6px; margin-top: 2px; }

.skeleton { height: 96px; border-radius: 12px; margin-bottom: 10px; background: linear-gradient(90deg, var(--card) 25%, var(--bg2) 50%, var(--card) 75%); background-size: 200% 100%; animation: shimmer 1.2s infinite; }
@keyframes shimmer { to { background-position: -200% 0; } }
.empty { text-align: center; padding: 48px 20px; color: var(--muted); border: 1px dashed var(--line); border-radius: 12px; }
