/* ==========================================================================
   ExpertPulse — Sports Data (scores, fixtures, league tables)
   Themed by the active demo: accent, heading font, radius (--sk-* tokens).
   ========================================================================== */
.eps-scores, .eps-table { --eps-r: var(--sk-radius, 12px); --eps-line: var(--border); --eps-soft: var(--sk-soft, color-mix(in srgb, var(--accent) 6%, var(--bg-body))); color: var(--text-main); }
.eps-crest { width: 24px; height: 24px; flex: 0 0 24px; object-fit: contain; }
.eps-crest--init { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--eps-soft); color: var(--accent); font: 800 11px/1 var(--font-heading); }
.eps-live { display: inline-flex; align-items: center; gap: 6px; color: #e11d48; font: 800 11px/1 var(--sk-label-font, var(--font-body)); letter-spacing: 1px; text-transform: uppercase; }
.eps-live i { width: 8px; height: 8px; border-radius: 50%; background: #e11d48; animation: eps-pulse 1.4s ease-out infinite; }
@keyframes eps-pulse { 0% { box-shadow: 0 0 0 0 rgba(225,29,72,.55); } 100% { box-shadow: 0 0 0 9px rgba(225,29,72,0); } }
.eps-state { color: var(--text-muted); font: 700 11px/1.2 var(--sk-label-font, var(--font-body)); letter-spacing: .6px; text-transform: uppercase; }
.eps-source { margin: 10px 0 0; color: var(--text-muted); font-size: 11.5px; }
.eps-empty { display: flex; gap: 8px; align-items: center; margin: 0; padding: 18px; border: 1px dashed var(--eps-line); border-radius: var(--eps-r); color: var(--text-muted); font-size: 14px; }
.eps-empty a { color: var(--accent); font-weight: 700; }
.eps-sub { margin: 0 0 14px; font-family: var(--font-heading); font-size: 1.15rem; font-weight: 800; font-style: var(--sk-title-style, normal); text-transform: var(--sk-title-tt, none); }

/* Team rows (shared) */
.eps-team { display: flex; align-items: center; gap: 10px; min-width: 0; font-weight: 600; font-size: 14.5px; }
.eps-team__name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.eps-team.is-win { font-weight: 800; }
.eps-goals { min-width: 18px; text-align: right; font-family: var(--font-heading); font-size: 1.05rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.eps-match--ft .eps-team:not(.is-win) { color: color-mix(in srgb, var(--text-main) 70%, var(--bg-body)); }

/* Strip (homepage) */
.ep-block-sports-scores { padding: 18px 0; }
.eps-strip { display: flex; align-items: stretch; gap: 14px; }
.eps-strip__league { flex: 0 0 auto; display: flex; align-items: center; padding: 0 16px; border-radius: var(--eps-r); background: var(--accent); color: var(--eph-on-accent, var(--on-accent-fill, #fff)); font: 800 12px/1.2 var(--sk-label-font, var(--font-body)); letter-spacing: 1px; text-transform: uppercase; writing-mode: horizontal-tb; max-width: 120px; text-align: center; }
.eps-strip__track { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 2px; flex: 1; }
.eps-strip__track::-webkit-scrollbar { display: none; }
.eps-strip .eps-match { flex: 0 0 210px; scroll-snap-align: start; display: grid; gap: 8px; padding: 12px 14px; border: 1px solid var(--eps-line); border-radius: var(--eps-r); background: var(--bg-body); transition: border-color .2s; }
.eps-strip .eps-match:hover { border-color: var(--accent); }
.eps-strip .eps-match--live { border-color: color-mix(in srgb, #e11d48 45%, var(--eps-line)); box-shadow: 0 0 0 3px color-mix(in srgb, #e11d48 10%, transparent); }

/* List (sidebar / page) */
.eps-list { display: grid; gap: 0; border: 1px solid var(--eps-line); border-radius: var(--eps-r); overflow: hidden; }
.eps-day { margin: 0; padding: 9px 14px; background: var(--eps-soft); color: var(--text-muted); font: 800 11px/1.2 var(--sk-label-font, var(--font-body)); letter-spacing: 1px; text-transform: uppercase; }
.eps-list .eps-match { display: grid; grid-template-columns: 74px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px; row-gap: 6px; padding: 12px 14px; border-top: 1px solid var(--eps-line); }
.eps-list .eps-day + .eps-match { border-top: 0; }
.eps-list .eps-match__meta { grid-row: 1 / 3; display: flex; align-items: center; }
.eps-list .eps-match--live { background: color-mix(in srgb, #e11d48 5%, var(--bg-body)); }

/* Table */
.eps-table__scroll { overflow-x: auto; border: 1px solid var(--eps-line); border-radius: var(--eps-r); }
.eps-table table { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.eps-table th { padding: 10px 8px; background: var(--eps-soft); color: var(--text-muted); font: 800 11px/1 var(--sk-label-font, var(--font-body)); letter-spacing: .8px; text-align: center; text-transform: uppercase; white-space: nowrap; }
.eps-table td { padding: 9px 8px; border-top: 1px solid var(--eps-line); text-align: center; white-space: nowrap; }
.eps-table .eps-club { text-align: left; }
.eps-table td.eps-club { display: flex; align-items: center; gap: 10px; min-width: 150px; font-weight: 700; }
.eps-table td.eps-club span { overflow: hidden; text-overflow: ellipsis; }
.eps-table .eps-pos { width: 34px; color: var(--text-muted); font-weight: 800; position: relative; }
.eps-table tr.is-top .eps-pos { color: var(--accent); }
.eps-table tr.is-top td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
.eps-table tr.is-drop td:first-child { box-shadow: inset 3px 0 0 #9ca3af; }
.eps-table .eps-pts { font-weight: 800; color: var(--text-main); }
.eps-table tbody tr:hover td { background: var(--eps-soft); }
.eps-form { display: flex; gap: 3px; justify-content: center; }
.eps-f { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 4px; color: #fff; font: 800 9.5px/1 var(--font-body); font-style: normal; }
.eps-f--w { background: #16a34a; } .eps-f--d { background: #9ca3af; } .eps-f--l { background: #dc2626; }
.eps-table--compact table { font-size: 13px; }
.eps-table--compact td.eps-club { min-width: 0; }

/* Block: table + results */
.ep-block-sports-table { padding: 30px 0; }
.eps-duo { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.eps-duo--page { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }

/* Live Scores page tabs */
.eps-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; justify-content: inherit; }
html[data-hs] .eps-tabs { justify-content: var(--sk-head-align, flex-start); }
.eps-tabs a { padding: 8px 16px; border: 1px solid color-mix(in srgb, currentColor 22%, transparent); border-radius: var(--sk-btn-radius, 999px); color: inherit; font-size: 13.5px; font-weight: 700; text-decoration: none; transition: background-color .2s, border-color .2s, color .2s; }
.eps-tabs a:hover, .eps-tabs a.is-active { border-color: var(--accent); background: var(--accent); color: var(--eph-on-accent, var(--on-accent-fill, #fff)); }
.is-pending { display: grid; gap: 10px; }
.eps-scores--strip.is-pending { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.eps-skel { display: block; height: 64px; border-radius: var(--sk-radius, 12px); background: linear-gradient(90deg, var(--sk-soft, rgba(127,127,127,.08)) 25%, rgba(127,127,127,.16) 50%, var(--sk-soft, rgba(127,127,127,.08)) 75%); background-size: 200% 100%; animation: eps-shimmer 1.3s linear infinite; }
.eps-scores--strip.is-pending .eps-skel { height: 92px; }
.eps-table.is-pending .eps-skel { height: 34px; border-radius: 6px; }
@keyframes eps-shimmer { to { background-position: -200% 0; } }
.eps-admin { display: block; margin-top: 4px; font-size: 12px; opacity: .85; }
.eps-scores.is-loading { opacity: .6; transition: opacity .2s; }

@media (max-width: 992px) { .eps-duo, .eps-duo--page { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
    .eps-strip { flex-direction: column; gap: 10px; }
    .eps-strip__league { max-width: none; padding: 8px 12px; justify-content: center; }
    .eps-strip .eps-match { flex-basis: 190px; }
    .eps-table th.eps-form-h, .eps-table td.eps-form { display: none; }
}
@media (prefers-reduced-motion: reduce) { .eps-live i, .eps-skel { animation: none; } }
