/* Sports Trading — compact trading-terminal UI (design only; APIs/scripts untouched) */

/* ----- Theme tokens (softer contrast — easier on the eyes) ----- */
html[data-theme="light"] .tf-sports-page{
  --sp-bg:#E8EAE8;
  --sp-card:#FAFBFA;
  --sp-border:#D5D8D5;
  --sp-text:#1A1F1C;
  --sp-muted:#66706A;
  --sp-soft:rgba(26,31,28,.04);
  --sp-hover:rgba(26,31,28,.055);
  --sp-green:#2F9E63;
  --sp-green-bright:#3AAF70;
  --sp-green-wash:rgba(47,158,99,.08);
  --sp-green-border:rgba(47,158,99,.2);
  --sp-home:#1F8A55;
  --sp-away:#B4234A;
  --sp-home-wash:rgba(31,138,85,.1);
  --sp-away-wash:rgba(180,35,74,.1);
  --sp-draw:#8A9390;
  --sp-draw-soft:#B5BCB8;
  --sp-btn:#2F9E63;
  --sp-btn-hover:#278A56;
  --sp-btn-text:#F7FBF8;
  --sp-red:#C44B4B;
  --sp-red-wash:rgba(196,75,75,.07);
  --sp-amber:#C4841D;
  --sp-amber-wash:rgba(196,132,29,.09);
  --sp-shadow:0 4px 18px rgba(26,31,28,.05);
  --sp-radius:16px;
}
html[data-theme="dark"] .tf-sports-page{
  --sp-bg:#151715;
  --sp-card:#1C1E1C;
  --sp-border:rgba(255,255,255,.09);
  --sp-text:#E8ECE9;
  --sp-muted:#9AA39D;
  --sp-soft:rgba(255,255,255,.04);
  --sp-hover:rgba(255,255,255,.06);
  --sp-green:#55D98A;
  --sp-green-bright:#6EE7A2;
  --sp-green-wash:rgba(85,217,138,.12);
  --sp-green-border:rgba(85,217,138,.28);
  --sp-home:#55D98A;
  --sp-away:#FF7B94;
  --sp-home-wash:rgba(85,217,138,.14);
  --sp-away-wash:rgba(255,123,148,.14);
  --sp-draw:#E8ECE9;
  --sp-draw-soft:#F4F6F5;
  --sp-btn:#3A9B65;
  --sp-btn-hover:#348A5A;
  --sp-btn-text:#F2F7F4;
  --sp-red:#FF7B94;
  --sp-red-wash:rgba(255,123,148,.12);
  --sp-amber:#E0B35A;
  --sp-amber-wash:rgba(224,179,90,.12);
  --sp-shadow:none;
  --sp-radius:16px;
}
.tf-sports-page{
  --sp-bg:#E8EAE8;
  --sp-card:#FAFBFA;
  --sp-border:#D5D8D5;
  --sp-text:#1A1F1C;
  --sp-muted:#66706A;
  --sp-soft:rgba(26,31,28,.04);
  --sp-hover:rgba(26,31,28,.055);
  --sp-green:#2F9E63;
  --sp-green-bright:#3AAF70;
  --sp-green-wash:rgba(47,158,99,.08);
  --sp-green-border:rgba(47,158,99,.2);
  --sp-home:#1F8A55;
  --sp-away:#B4234A;
  --sp-home-wash:rgba(31,138,85,.1);
  --sp-away-wash:rgba(180,35,74,.1);
  --sp-draw:#8A9390;
  --sp-draw-soft:#B5BCB8;
  --sp-btn:#2F9E63;
  --sp-btn-hover:#278A56;
  --sp-btn-text:#F7FBF8;
  --sp-red:#C44B4B;
  --sp-red-wash:rgba(196,75,75,.07);
  --sp-amber:#C4841D;
  --sp-amber-wash:rgba(196,132,29,.09);
  --sp-shadow:0 4px 18px rgba(26,31,28,.05);
  --sp-radius:16px;
  --sp-ease:cubic-bezier(.22,1,.36,1);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:13.5px;
  line-height:1.4;
  padding-top:72px;
  background:var(--sp-bg);
  color:var(--sp-text);
  min-height:100vh;
  position:relative;
  overflow-x:hidden;
}

/* ----- Header: shorter + theme-aware on sports page ----- */
body:has(.tf-sports-page) .tf-topbar.topbar,
body:has(.tf-sports-page) .tf-topbar.topbar.scrolled{
  min-height:60px;
}
body:has(.tf-sports-page) .tf-topbar-inner{min-height:60px;gap:12px}
body:has(.tf-sports-page) .tf-topbar .nav a{
  padding:6px 10px;
  font-size:.84rem;
}
body:has(.tf-sports-page) .tf-topbar .brand strong{font-size:1.05rem}
body:has(.tf-sports-page) .tf-topbar .brand img{width:30px;height:30px}
body:has(.tf-sports-page) .tf-topbar .nav-actions .btn-primary,
body:has(.tf-sports-page) .tf-topbar .nav-actions a.btn-ghost,
body:has(.tf-sports-page) .tf-topbar .theme-toggle{
  min-height:32px;
  padding:6px 12px;
  font-size:.84rem;
}
html[data-theme="dark"] body:has(.tf-sports-page) .tf-topbar.topbar,
html[data-theme="dark"] body:has(.tf-sports-page) .tf-topbar.topbar.scrolled{
  background:#151715;
  border-bottom:1px solid rgba(255,255,255,.07);
}
html[data-theme="light"] body:has(.tf-sports-page) .tf-topbar.topbar,
html[data-theme="light"] body:has(.tf-sports-page) .tf-topbar.topbar.scrolled{
  background:#F4F5F4;
  border-bottom:1px solid rgba(23,23,23,.08);
}
html[data-theme="light"] body:has(.tf-sports-page) .site-glow{
  background:linear-gradient(180deg,#F0F1F0,#E8EAE8 45%,#E0E2E0);
}
html[data-theme="dark"] body:has(.tf-sports-page) .site-glow{
  background:
    radial-gradient(circle at 18% 8%,rgba(76,175,120,.05),transparent 28%),
    linear-gradient(180deg,#151715,#191B19 55%,#151715);
}

.tf-sports-page .tf-betting-shell{
  width:min(1680px,calc(100% - 16px));
  margin:0 auto 24px;
  display:grid;
  grid-template-columns:minmax(200px,18%) minmax(0,1fr) minmax(260px,20%);
  gap:12px;
  align-items:start;
}

/* ----- Shared cards ----- */
.tf-sports-page .tf-betting-sidebar,
.tf-sports-page .tf-scoreboard,
.tf-sports-page .tf-prediction-card,
.tf-sports-page .tf-markets-card,
.tf-sports-page .tf-ticket-panel,
.tf-sports-page .tf-ticket-panel.tf-ticket-panel--classic,
.tf-sports-page .card{
  border:1px solid var(--sp-border)!important;
  border-radius:var(--sp-radius)!important;
  background:var(--sp-card)!important;
  color:var(--sp-text);
  box-shadow:var(--sp-shadow)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:
    transform .35s var(--sp-ease),
    box-shadow .35s var(--sp-ease),
    border-color .25s ease;
}

/* ----- Left sidebar ----- */
.tf-sports-page .tf-betting-sidebar{
  position:sticky;
  top:72px;
  max-height:calc(100vh - 84px);
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:6px;
  overflow:hidden;
}
.tf-sports-page .tf-betting-sidebar-head{gap:6px}
.tf-sports-page .tf-betting-sidebar-scroll{
  display:grid;
  gap:4px;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-right:2px;
  scrollbar-width:thin;
  scrollbar-color:rgba(76,175,120,.28) transparent;
}
.tf-sports-page .tf-betting-sidebar-scroll::-webkit-scrollbar{width:5px}
.tf-sports-page .tf-betting-sidebar-scroll::-webkit-scrollbar-thumb{
  background:rgba(76,175,120,.28);
  border-radius:999px;
}
.tf-sports-page .tf-betting-sidebar-scroll::-webkit-scrollbar-track{background:transparent}

.tf-sports-page .tf-betting-live{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--sp-border);
  background:var(--sp-green-wash);
  color:var(--sp-text);
  font-size:12px;
  font-weight:700;
}
.tf-sports-page .tf-betting-live span{
  width:7px;height:7px;
  background:#ef4444;
  box-shadow:0 0 8px rgba(239,68,68,.5);
  border-radius:50%;
  animation:sp-live-pulse 1.6s ease-in-out infinite;
}

.tf-sports-page .tf-betting-label{
  margin:8px 4px 2px;
  color:var(--sp-muted);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tf-sports-page .tf-betting-label--category{
  margin-top:10px;
  color:var(--sp-green);
  letter-spacing:.1em;
}
.tf-sports-page .tf-betting-label--category:first-child{margin-top:2px}
.tf-sports-page .tf-betting-label--league{
  margin:4px 4px 2px;
  color:var(--sp-text);
  font-size:10px;
  opacity:.75;
}

.tf-sports-page .tf-match-link{
  display:flex;
  gap:8px;
  align-items:center;
  min-height:52px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid transparent;
  border-left:3px solid transparent;
  color:var(--sp-text);
  transition:
    background .2s ease,
    border-color .2s ease,
    transform .25s var(--sp-ease),
    box-shadow .25s ease;
}
.tf-sports-page .tf-match-link:hover{
  background:var(--sp-hover);
  border-color:transparent;
  transform:translateX(3px);
}
.tf-sports-page .tf-match-link.active{
  background:var(--sp-green-wash);
  border-color:var(--sp-green-border);
  border-left-color:var(--sp-green);
  box-shadow:inset 0 0 0 1px var(--sp-green-border);
}
.tf-sports-page .tf-match-link--live{
  border-color:rgba(239,68,68,.22);
  background:var(--sp-red-wash);
}
.tf-sports-page .tf-match-flags{
  display:inline-flex;
  align-items:center;
  gap:4px;
  flex-shrink:0;
  line-height:1;
}
.tf-sports-page .tf-match-link-copy{gap:1px;min-width:0;flex:1;overflow:hidden}
.tf-sports-page .tf-match-link-copy strong{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:12.5px;
  font-weight:650;
  letter-spacing:-.01em;
  color:var(--sp-text);
  font-style:normal;
  line-height:1.3;
}
.tf-sports-page .tf-match-link-copy strong em{
  font-style:normal;
  font-weight:700;
}
.tf-sports-page .tf-team-home{color:var(--sp-home)!important}
.tf-sports-page .tf-team-away{color:var(--sp-away)!important}
.tf-sports-page .tf-vs-sep{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:1.6em;
  padding:1px 7px;
  border-radius:999px;
  background:var(--sp-soft);
  border:1px solid var(--sp-border);
  color:var(--sp-muted)!important;
  font-size:.72em;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  flex-shrink:0;
  vertical-align:middle;
}
.tf-sports-page .tf-match-link-copy .tf-vs-sep{
  display:inline;
  padding:0 .35em;
  margin:0 .1em;
  border:0;
  background:transparent;
  border-radius:0;
  font-size:.78em;
  letter-spacing:.04em;
  color:var(--sp-muted)!important;
  vertical-align:baseline;
}
.tf-sports-page .tf-match-link-copy small{
  display:block;
  font-size:11px;
  color:var(--sp-muted)!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tf-sports-page .tf-match-link-status{gap:2px}
.tf-sports-page .tf-match-link-status em{
  padding:2px 6px;
  font-size:9px;
  border-radius:999px;
}
.tf-sports-page .tf-match-link-status strong{font-size:12px;color:var(--sp-text)}
.tf-sports-page .tf-sidebar-live em{background:var(--sp-red-wash);color:var(--sp-red)}
.tf-sports-page .tf-sidebar-final em{background:var(--sp-soft);color:var(--sp-muted)}
.tf-sports-page .tf-disabled-sport{
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--sp-border);
  background:transparent;
  color:var(--sp-muted);
  font-size:12px;
}
.tf-sports-page .tf-disabled-sport small{font-size:10px;color:var(--sp-muted)!important}

/* ----- Main column ----- */
.tf-sports-page .tf-betting-main{gap:10px}
.tf-sports-page .tf-match-hero{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  padding:4px 2px 0;
  position:relative;
}
.tf-sports-page .tf-match-hero .eyebrow{
  margin:0 0 4px;
  color:var(--sp-green);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.tf-sports-page .tf-match-hero h1{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 10px;
  font-family:"Space Grotesk",Inter,system-ui,sans-serif;
  font-size:clamp(1.45rem,2.6vw,2.35rem);
  line-height:1.15;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--sp-text);
  max-width:34ch;
  font-style:normal;
}
.tf-sports-page .tf-match-hero h1 .tf-team-home,
.tf-sports-page .tf-match-hero h1 .tf-team-away{
  font-style:normal;
  font-weight:750;
}
.tf-sports-page .tf-match-hero h1 .tf-vs-sep{
  font-size:.55em;
  padding:4px 10px;
  min-width:2.2em;
}
.tf-sports-page .tf-match-live{gap:6px;margin-top:6px}
.tf-sports-page .tf-live-pill{
  padding:4px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  min-height:28px;
  display:inline-flex;
  align-items:center;
  border:1px solid transparent;
}
.tf-sports-page .tf-live-upcoming{
  background:var(--sp-amber-wash)!important;
  color:var(--sp-amber)!important;
}
.tf-sports-page .tf-live-now{
  background:var(--sp-red-wash)!important;
  color:var(--sp-red)!important;
}
.tf-sports-page .tf-live-final{
  background:var(--sp-soft)!important;
  color:var(--sp-muted)!important;
}
.tf-sports-page .tf-live-score{
  font-size:1.15rem;
  font-weight:800;
  color:var(--sp-green);
}
.tf-sports-page .tf-live-kickoff{
  font-size:11px;
  color:var(--sp-muted);
}
.tf-sports-page .tf-match-timeline{gap:4px;margin-top:6px}
.tf-sports-page .tf-timeline-step{
  padding:4px 8px;
  min-height:28px;
  border-radius:999px;
  border:1px solid var(--sp-border);
  font-size:10px;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  color:var(--sp-muted);
  background:var(--sp-card);
}
.tf-sports-page .tf-timeline-step.done{
  background:var(--sp-green-wash);
  color:var(--sp-green);
  border-color:var(--sp-green-border);
}
.tf-sports-page .tf-copy-link{
  width:36px;height:36px;
  border-radius:10px;
  border:1px solid var(--sp-border);
  color:var(--sp-green);
  background:var(--sp-green-wash);
  font-size:14px;
}

/* ----- Scoreboard ----- */
.tf-sports-page .tf-scoreboard{
  grid-template-columns:1fr auto 1fr;
  gap:8px;
  padding:12px 14px;
  max-height:180px;
  align-items:center;
}
.tf-sports-page .tf-team-block{gap:4px}
.tf-sports-page .tf-big-flag{font-size:1.75rem;filter:none;line-height:1}
.tf-sports-page .tf-team-block strong,
.tf-sports-page .tf-team-name{
  font-size:15px;
  font-weight:750;
  letter-spacing:-.02em;
}
.tf-sports-page .tf-team-block[data-team-side="home"] .tf-team-name{color:var(--sp-home)!important}
.tf-sports-page .tf-team-block[data-team-side="away"] .tf-team-name{color:var(--sp-away)!important}
.tf-sports-page .tf-team-block[data-team-side="home"]{
  padding:6px 8px;
  border-radius:12px;
  background:var(--sp-home-wash);
}
.tf-sports-page .tf-team-block[data-team-side="away"]{
  padding:6px 8px;
  border-radius:12px;
  background:var(--sp-away-wash);
}

/* Team marks (replace identical ⚽ with colored code + ball) */
.tf-sports-page .tf-team-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  font-style:normal;
  line-height:1;
}
.tf-sports-page .tf-team-mark.is-emoji{
  font-size:1.15rem;
}
.tf-sports-page .tf-team-mark.is-emoji.is-lg{font-size:1.75rem}
.tf-sports-page .tf-team-mark.is-badge{
  gap:3px;
  min-width:2.4rem;
  height:1.7rem;
  padding:0 6px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
}
.tf-sports-page .tf-team-mark.is-badge.is-sm{
  min-width:2.1rem;
  height:1.45rem;
  padding:0 5px;
  font-size:9px;
}
.tf-sports-page .tf-team-mark.is-badge.is-lg{
  min-width:3.2rem;
  height:2.15rem;
  padding:0 8px;
  font-size:11px;
  gap:5px;
}
.tf-sports-page .tf-team-mark.is-badge.side-home{
  background:var(--sp-home-wash);
  border-color:rgba(31,138,85,.28);
  color:var(--sp-home);
}
.tf-sports-page .tf-team-mark.is-badge.side-away{
  background:var(--sp-away-wash);
  border-color:rgba(180,35,74,.28);
  color:var(--sp-away);
}
.tf-sports-page .tf-team-mark.is-badge em{
  font-style:normal;
  font-weight:800;
}
.tf-sports-page .tf-team-mark-ball{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  height:auto;
  font-size:11px;
  line-height:1;
  flex-shrink:0;
  filter:none;
}
.tf-sports-page .tf-team-mark.is-sm .tf-team-mark-ball{
  font-size:10px;
}
.tf-sports-page .tf-team-mark.is-lg .tf-team-mark-ball{
  font-size:15px;
}
.tf-sports-page .tf-winner-cup{width:1rem;height:1rem}
.tf-sports-page .tf-team-block small{
  font-size:11px;
  color:var(--sp-muted)!important;
  font-weight:600;
}
.tf-sports-page .tf-score-mid,
.tf-sports-page .tf-kickoff-card{
  gap:2px;
  padding:10px 16px;
  border-radius:12px;
  background:var(--sp-soft)!important;
  border:1px solid var(--sp-border)!important;
  min-width:140px;
}
.tf-sports-page .tf-kickoff-time,
.tf-sports-page .tf-kickoff-date{
  font-size:11px;
  font-weight:600;
  color:var(--sp-muted)!important;
}
.tf-sports-page .tf-kickoff-score,
.tf-sports-page .tf-score-mid strong{
  font-size:clamp(1.5rem,2.4vw,2rem);
  letter-spacing:-.04em;
  color:var(--sp-text)!important;
  font-weight:800;
}
.tf-sports-page .tf-score-mid small,
.tf-sports-page .tf-knockout-note{
  font-size:11px;
  color:var(--sp-green)!important;
  font-weight:700;
}

/* ----- Chart ----- */
.tf-sports-page .tf-prediction-card,
.tf-sports-page .tf-markets-card{padding:12px 14px}
.tf-sports-page .tf-card-title-row{gap:10px;margin-bottom:8px;align-items:flex-start}
.tf-sports-page .tf-card-title-row h2{
  margin:0 0 2px;
  font-family:"Space Grotesk",Inter,system-ui,sans-serif;
  font-size:18px;
  letter-spacing:-.03em;
  font-weight:700;
  color:var(--sp-text);
}
.tf-sports-page .tf-card-title-row p{
  margin:0;
  font-size:12px;
  color:var(--sp-muted)!important;
  max-width:52ch;
}
.tf-sports-page .tf-card-title-row strong{
  font-size:12px;
  font-weight:700;
  color:var(--sp-muted);
  white-space:nowrap;
}
.tf-sports-page .tf-chart-title-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.tf-sports-page .tf-chart-expand-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  padding:0;
  border-radius:10px;
  border:1px solid var(--sp-border);
  background:var(--sp-soft);
  color:var(--sp-text);
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.tf-sports-page .tf-chart-expand-btn:hover{
  border-color:var(--sp-green-border);
  background:var(--sp-green-wash);
  color:var(--sp-green);
}
.tf-sports-page .tf-chart-legend{
  gap:12px;
  margin-bottom:8px;
  font-size:13px;
  font-weight:650;
  color:var(--sp-text);
}
.tf-sports-page .tf-chart-legend i{width:16px;height:3px}
.tf-sports-page .tf-chart-legend .home i{background:var(--sp-home)!important}
.tf-sports-page .tf-chart-legend .draw i{background:var(--sp-draw)!important}
.tf-sports-page .tf-chart-legend .away i{background:var(--sp-away)!important}
.tf-sports-page .tf-line.home{stroke:var(--sp-home)!important}
.tf-sports-page .tf-line.draw{stroke:var(--sp-draw)!important}
.tf-sports-page .tf-line.away{stroke:var(--sp-away)!important}
.tf-sports-page .tf-chart-end.home,
.tf-sports-page .tf-chart-hover-label.home,
.tf-sports-page .tf-chart-marker.home{fill:var(--sp-home)!important}
.tf-sports-page .tf-chart-end.draw,
.tf-sports-page .tf-chart-hover-label.draw,
.tf-sports-page .tf-chart-marker.draw{fill:var(--sp-draw)!important}
.tf-sports-page .tf-chart-end.away,
.tf-sports-page .tf-chart-hover-label.away,
.tf-sports-page .tf-chart-marker.away{fill:var(--sp-away)!important}
.tf-sports-page .tf-chart-tooltip-rows .home{color:var(--sp-home)!important}
.tf-sports-page .tf-chart-tooltip-rows .draw{color:var(--sp-draw)!important}
.tf-sports-page .tf-chart-tooltip-rows .away{color:var(--sp-away)!important}
html[data-theme="dark"] .tf-sports-page .tf-line{
  stroke-width:2.25!important;
}
html[data-theme="dark"] .tf-sports-page .tf-line.draw{
  stroke-width:2!important;
  opacity:.92;
}
html[data-theme="dark"] .tf-sports-page .tf-grid-lines line{
  opacity:.22;
  stroke:rgba(232,236,233,.55);
}
html[data-theme="dark"] .tf-sports-page .tf-chart-end,
html[data-theme="dark"] .tf-sports-page .tf-chart-hover-label{
  font-weight:800;
  paint-order:stroke fill;
  stroke:rgba(22,24,22,.72);
  stroke-width:2.5px;
  stroke-linejoin:round;
}
.tf-sports-page .tf-chart-shell{
  position:relative;
  width:100%;
  min-height:360px;
  max-height:none;
}
.tf-sports-page .tf-prediction-chart{
  width:100%;
  height:auto;
  min-height:360px;
  max-height:none;
  display:block;
}
.tf-sports-page .tf-chart-label,
.tf-sports-page .tf-chart-axis{font-size:12px;fill:var(--sp-muted)}
.tf-sports-page .tf-chart-end{
  font-size:13px;
  font-weight:700;
}
.tf-sports-page .tf-chart-hover-label{font-size:12px;font-weight:700}
.tf-sports-page .tf-grid-lines line{opacity:.12;stroke:var(--sp-muted)}
.tf-sports-page .tf-chart-tooltip{
  min-width:150px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--sp-border)!important;
  background:var(--sp-card)!important;
  color:var(--sp-text);
  box-shadow:var(--sp-shadow);
  font-size:13px;
}
.tf-sports-page .tf-chart-tooltip strong{color:var(--sp-muted)}

/* Full-screen chart */
body.tf-chart-expanded-open{overflow:hidden}
.tf-sports-page .tf-prediction-card.is-expanded{
  position:fixed!important;
  inset:12px;
  z-index:1200;
  margin:0;
  padding:16px 18px!important;
  display:flex;
  flex-direction:column;
  border-radius:18px!important;
  box-shadow:0 24px 64px rgba(0,0,0,.35)!important;
  background:var(--sp-card)!important;
}
.tf-sports-page .tf-prediction-card.is-expanded .tf-chart-shell{
  flex:1;
  min-height:0;
  display:flex;
}
.tf-sports-page .tf-prediction-card.is-expanded .tf-prediction-chart{
  flex:1;
  width:100%;
  height:100%;
  min-height:0;
  max-height:none;
}
.tf-sports-page .tf-prediction-card.is-expanded .tf-chart-end{
  font-size:16px;
}
.tf-sports-page .tf-prediction-card.is-expanded .tf-chart-label,
.tf-sports-page .tf-prediction-card.is-expanded .tf-chart-axis{
  font-size:13px;
}
.tf-sports-page .tf-prediction-card.is-expanded .tf-chart-legend{
  font-size:14px;
}
.tf-sports-page .tf-prediction-card.is-expanded::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  background:rgba(10,12,11,.55);
  backdrop-filter:blur(2px);
}

/* Markets / moneyline */
.tf-sports-page .tf-outcome-grid{gap:8px}
.tf-sports-page .tf-outcome{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--sp-border)!important;
  background:var(--sp-card)!important;
  color:var(--sp-text)!important;
  gap:4px;
}
.tf-sports-page .tf-outcome:hover{
  background:var(--sp-green-wash)!important;
  border-color:var(--sp-green-border)!important;
}
.tf-sports-page .tf-outcome.active{
  border-color:var(--sp-green-border)!important;
  background:var(--sp-green-wash)!important;
  box-shadow:0 0 0 1px var(--sp-green-border);
}
.tf-sports-page .tf-outcome strong{font-size:1.25rem;color:var(--sp-green)!important}
.tf-sports-page .tf-outcome small{font-size:11px;color:var(--sp-muted)!important}

.tf-sports-page .tf-moneyline-row{gap:6px}
.tf-sports-page .tf-moneyline-pill{
  padding:8px 12px;
  min-height:36px;
  border-radius:999px;
  border:1px solid var(--sp-border)!important;
  background:var(--sp-soft)!important;
  color:var(--sp-text)!important;
  font-size:12px;
}
.tf-sports-page .tf-moneyline-pill span,
.tf-sports-page .tf-moneyline-pill strong{color:inherit!important}
.tf-sports-page .tf-moneyline-pill:hover{
  background:var(--sp-green-wash)!important;
  border-color:var(--sp-green-border)!important;
}
.tf-sports-page .tf-moneyline-pill.home{
  background:var(--sp-red-wash)!important;
  border-color:rgba(220,38,38,.28)!important;
  color:var(--sp-red)!important;
}
.tf-sports-page .tf-moneyline-pill.away{
  background:rgba(244,63,94,.08)!important;
  border-color:rgba(244,63,94,.25)!important;
  color:#BE123C!important;
}
html[data-theme="dark"] .tf-sports-page .tf-moneyline-pill.away{color:#FDA4AF!important}
.tf-sports-page .tf-moneyline-pill.draw{
  background:var(--sp-soft)!important;
  color:var(--sp-text)!important;
}
.tf-sports-page .tf-moneyline-pill.active{
  box-shadow:0 0 0 2px var(--sp-green-border), 0 4px 12px rgba(47,158,99,.1);
  transform:translateY(-1px);
}
.tf-sports-page .tf-moneyline-pill span{font-size:10px}
.tf-sports-page .tf-moneyline-pill strong{font-size:13px}

/* ----- Trade ticket ----- */
.tf-sports-page .tf-ticket-panel{
  position:sticky;
  top:72px;
  max-height:calc(100vh - 84px);
  overflow:auto;
  padding:12px!important;
  scrollbar-width:thin;
}
.tf-sports-page .tf-ticket-header{gap:8px;margin-bottom:10px;align-items:flex-start}
.tf-sports-page .tf-ticket-header small,
.tf-sports-page .tf-ticket-panel--classic .tf-ticket-header small,
.tf-sports-page .tf-ticket-panel--classic .tf-compliance-note,
.tf-sports-page .tf-ticket-panel--classic .tf-ticket-field,
.tf-sports-page .tf-ticket-panel--classic .tf-ticket-outcome{
  color:var(--sp-muted)!important;
  font-size:11px;
}
.tf-sports-page .tf-ticket-header h2,
.tf-sports-page .tf-ticket-panel--classic .tf-ticket-header h2{
  margin:2px 0 0;
  font-family:"Space Grotesk",Inter,system-ui,sans-serif;
  font-size:16px;
  letter-spacing:-.03em;
  color:var(--sp-text)!important;
}
.tf-sports-page .tf-ticket-header>span,
.tf-sports-page .tf-ticket-panel--classic .tf-ticket-header>span{
  padding:4px 8px;
  border-radius:999px;
  background:var(--sp-green-wash)!important;
  color:var(--sp-green)!important;
  font-size:10px;
  font-weight:800;
}

.tf-sports-page .tf-wallet-balance,
.tf-sports-page .tf-ticket-panel--classic .tf-wallet-balance{
  gap:6px;
  padding:8px 10px;
  margin-bottom:10px;
  border-radius:10px;
  border:1px solid var(--sp-border)!important;
  background:var(--sp-soft)!important;
  flex-wrap:wrap;
}
.tf-sports-page .tf-wallet-balance span,
.tf-sports-page .tf-ticket-panel--classic .tf-wallet-balance span{
  font-size:11px;
  color:var(--sp-muted)!important;
  font-weight:600;
}
.tf-sports-page .tf-wallet-balance strong,
.tf-sports-page .tf-ticket-panel--classic .tf-wallet-balance strong{
  font-size:14px;
  color:var(--sp-text)!important;
}
.tf-sports-page .tf-wallet-link,
.tf-sports-page .tf-ticket-panel--classic .tf-wallet-link{
  font-size:12px;
  color:var(--sp-green)!important;
}

.tf-sports-page .tf-ticket-tabs{gap:6px;margin-bottom:10px}
.tf-sports-page .tf-ticket-tabs button,
.tf-sports-page .tf-ticket-panel--classic .tf-ticket-tabs button{
  padding:8px 10px;
  min-height:36px;
  border-radius:10px;
  border:1px solid var(--sp-border)!important;
  background:var(--sp-card)!important;
  color:var(--sp-text)!important;
  font-size:12px;
  font-weight:700;
}
.tf-sports-page .tf-ticket-tabs button:hover{
  background:var(--sp-green-wash)!important;
}
.tf-sports-page .tf-ticket-tabs button.active,
.tf-sports-page .tf-ticket-panel--classic .tf-ticket-tabs button.active{
  background:var(--sp-btn)!important;
  color:var(--sp-btn-text)!important;
  border-color:transparent!important;
}

.tf-sports-page .tf-ticket-field,
.tf-sports-page .tf-ticket-panel--classic .tf-ticket-field{
  gap:4px;
  font-size:11px;
  font-weight:700;
}
.tf-sports-page .tf-amount-control{gap:6px}
.tf-sports-page .tf-amount-control button,
.tf-sports-page .tf-amount-control input,
.tf-sports-page .tf-ticket-panel--classic .tf-amount-control button,
.tf-sports-page .tf-ticket-panel--classic .tf-amount-control input{
  height:40px;
  border-radius:10px;
  border:1px solid var(--sp-border)!important;
  background:var(--sp-card)!important;
  color:var(--sp-text)!important;
  font-size:13px;
}

.tf-sports-page .tf-quick-amounts{gap:4px;margin:8px 0}
.tf-sports-page .tf-quick-amounts button,
.tf-sports-page .tf-ticket-panel--classic .tf-quick-amounts button{
  padding:0 4px;
  min-height:30px;
  height:30px;
  border-radius:8px;
  border:1px solid var(--sp-border)!important;
  background:var(--sp-card)!important;
  color:var(--sp-text)!important;
  font-size:11px;
  font-weight:700;
}
.tf-sports-page .tf-quick-amounts button:hover{
  background:var(--sp-green-wash)!important;
  border-color:var(--sp-green-border)!important;
}

.tf-sports-page .tf-ticket-summary,
.tf-sports-page .tf-ticket-panel--classic .tf-ticket-summary{
  padding:8px 10px;
  margin:8px 0;
  border-radius:10px;
  background:var(--sp-soft)!important;
  border:1px solid var(--sp-border)!important;
  color:var(--sp-text)!important;
  font-size:12px;
  font-weight:700;
}

.tf-sports-page .tf-ticket-panel--classic .btn-primary,
.tf-sports-page .tf-ticket-panel .btn-primary{
  min-height:44px;
  height:44px;
  padding:0 14px!important;
  border-radius:10px!important;
  background:var(--sp-btn)!important;
  color:var(--sp-btn-text)!important;
  border:1px solid transparent!important;
  box-shadow:none!important;
  font-size:14px!important;
  font-weight:750!important;
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease, filter .15s ease;
}
.tf-sports-page .tf-ticket-panel--classic .btn-primary:hover:not(:disabled),
.tf-sports-page .tf-ticket-panel .btn-primary:hover:not(:disabled){
  background:var(--sp-btn-hover)!important;
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(47,158,99,.18)!important;
  filter:none;
}

.tf-sports-page .tf-open-bets{gap:6px;margin-top:10px}
.tf-sports-page .tf-open-bets .tf-betting-label{margin-top:4px}
.tf-sports-page .tf-open-bets-empty{
  margin:0;
  padding:8px 10px;
  border-radius:10px;
  border:1px dashed var(--sp-border);
  color:var(--sp-muted)!important;
  font-size:11px;
}
.tf-sports-page .tf-open-bet-row{
  gap:8px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--sp-border);
  background:var(--sp-green-wash);
  font-size:12px;
  color:var(--sp-text);
}
.tf-sports-page .tf-open-bet-row small,
.tf-sports-page .tf-open-bet-meta>span{
  font-size:10px;
  color:var(--sp-muted)!important;
}
.tf-sports-page .tf-bet-win{font-size:11px;color:var(--sp-green)!important}
.tf-sports-page .tf-compliance-note,
.tf-sports-page .tf-withdraw-link{
  font-size:10px;
  color:var(--sp-muted)!important;
  margin:8px 0 0;
  line-height:1.4;
}
.tf-sports-page .tf-withdraw-link a{color:var(--sp-green)!important;font-weight:700}

.tf-sports-page .tf-ticket-panel--classic .tf-refund-form select,
.tf-sports-page .tf-ticket-panel--classic .tf-refund-form input[type=text]{
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--sp-border)!important;
  background:var(--sp-card)!important;
  color:var(--sp-text)!important;
  font-size:12px;
}

.tf-sports-page .container.card{padding:16px;font-size:14px}

@media (max-width:1280px){
  .tf-sports-page .tf-betting-shell{
    grid-template-columns:minmax(200px,20%) minmax(0,1fr);
  }
  .tf-sports-page .tf-ticket-panel{
    grid-column:2;
    position:static;
    max-height:none;
  }
  .tf-sports-page .tf-betting-sidebar{
    top:68px;
    max-height:calc(100vh - 80px);
  }
}

@media (max-width:980px){
  .tf-sports-page{padding-top:68px}
  .tf-sports-page .tf-betting-shell{
    display:flex;
    flex-direction:column;
    gap:10px;
    width:calc(100% - 16px);
  }
  .tf-sports-page .tf-betting-sidebar{order:1;position:static;max-height:none}
  .tf-sports-page .tf-betting-main{order:2}
  .tf-sports-page .tf-ticket-panel{order:3;position:static;max-height:none;width:100%}

  /* Full names + vertical scroller (no truncated horizontal chips) */
  .tf-sports-page .tf-betting-sidebar{
    display:flex;
    flex-direction:column;
    gap:8px;
    overflow:hidden;
  }
  .tf-sports-page .tf-betting-sidebar-head{flex-shrink:0}
  .tf-sports-page .tf-betting-sidebar-scroll{
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    gap:8px;
    max-height:min(52vh,420px);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    padding-right:4px;
    padding-bottom:6px;
  }
  .tf-sports-page .tf-betting-sidebar-scroll > div{
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    gap:4px;
    min-width:0;
    width:100%;
  }
  .tf-sports-page .tf-betting-label{
    display:block;
    position:sticky;
    top:0;
    z-index:2;
    margin:6px 2px 2px;
    padding:4px 0 2px;
    background:linear-gradient(180deg,var(--sp-card) 70%,transparent);
  }
  .tf-sports-page .tf-betting-label--category{margin-top:10px}
  .tf-sports-page .tf-disabled-sport{display:flex}
  .tf-sports-page .tf-match-link{
    min-width:0;
    width:100%;
    flex-shrink:0;
    align-items:flex-start;
    min-height:auto;
    padding:10px 10px;
    gap:8px;
  }
  .tf-sports-page .tf-match-link:hover{transform:none}
  .tf-sports-page .tf-match-flags{flex-shrink:0;margin-top:2px}
  .tf-sports-page .tf-match-link-copy{
    flex:1;
    min-width:0;
    overflow:hidden;
  }
  .tf-sports-page .tf-match-link-copy strong{
    display:block!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    word-break:normal;
    overflow-wrap:normal;
    line-height:1.3;
    font-size:12.5px;
  }
  .tf-sports-page .tf-match-link-copy small{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    line-height:1.3;
  }
  .tf-sports-page .tf-match-link-status{
    flex-shrink:0;
    align-self:center;
  }

  .tf-sports-page .tf-match-hero h1{font-size:clamp(1.4rem,6vw,1.85rem);max-width:none}
  .tf-sports-page .tf-scoreboard{
    grid-template-columns:1fr;
    max-height:none;
    text-align:center;
  }
  .tf-sports-page .tf-chart-shell{min-height:280px;max-height:none}
  .tf-sports-page .tf-prediction-chart{min-height:280px;max-height:none}
  .tf-sports-page .tf-prediction-card.is-expanded{
    inset:8px;
    padding:12px!important;
  }

  /* Ticket + open bets scrollers */
  .tf-sports-page .tf-ticket-panel{
    max-height:min(70vh,640px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  .tf-sports-page .tf-open-bets{
    max-height:min(28vh,220px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding-right:2px;
  }
  .tf-sports-page .tf-ticket-panel--classic .tf-refund-form select,
  .tf-sports-page .tf-ticket-panel--classic .tf-refund-form input[type=text]{
    max-width:100%;
    width:100%;
  }
  .tf-sports-page .tf-ticket-panel--classic .tf-refund-form select{
    max-height:40px;
  }
}

@media (max-width:620px){
  .tf-sports-page{padding-top:64px;font-size:13px}
  .tf-sports-page .tf-betting-shell{width:calc(100% - 12px);margin-bottom:16px}
  .tf-sports-page .tf-scoreboard,
  .tf-sports-page .tf-prediction-card,
  .tf-sports-page .tf-markets-card,
  .tf-sports-page .tf-ticket-panel,
  .tf-sports-page .tf-betting-sidebar{
    border-radius:14px;
    padding:10px!important;
  }
  .tf-sports-page .tf-betting-sidebar-scroll{
    max-height:min(58vh,480px);
  }
  .tf-sports-page .tf-match-link{
    flex-wrap:nowrap;
  }
  .tf-sports-page .tf-match-link-copy{
    flex:1 1 auto;
    min-width:0;
  }
  .tf-sports-page .tf-match-link-status{
    width:auto;
    display:grid;
    justify-items:end;
    gap:2px;
    align-items:center;
    margin-top:0;
    flex-shrink:0;
  }
  .tf-sports-page .tf-match-link-status em,
  .tf-sports-page .tf-match-link-status strong{
    justify-self:start;
  }
  .tf-sports-page .tf-quick-amounts{grid-template-columns:repeat(3,1fr)}
  .tf-sports-page .tf-outcome-grid{grid-template-columns:1fr}
  .tf-sports-page .tf-moneyline-row{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .tf-sports-page .tf-moneyline-row--two{grid-template-columns:1fr 1fr}
}

/* =========================================================
   Motion + atmosphere (design only)
   ========================================================= */
.tf-sports-atmosphere{
  pointer-events:none;
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:0;
}
.tf-sports-page > .tf-betting-shell,
.tf-sports-page > .container{
  position:relative;
  z-index:1;
}
.tf-sports-orb{
  position:absolute;
  border-radius:50%;
  filter:blur(60px);
  opacity:.55;
  will-change:transform;
}
.tf-sports-orb-a{
  width:min(420px,55vw);
  height:min(420px,55vw);
  top:-8%;
  left:-6%;
  background:radial-gradient(circle,rgba(76,175,120,.16),transparent 70%);
  animation:sp-orb-drift 14s ease-in-out infinite alternate;
}
.tf-sports-orb-b{
  width:min(380px,50vw);
  height:min(380px,50vw);
  right:-8%;
  bottom:12%;
  background:radial-gradient(circle,rgba(47,158,99,.1),transparent 70%);
  animation:sp-orb-drift 18s ease-in-out infinite alternate-reverse;
}
html[data-theme="dark"] .tf-sports-orb-a{
  background:radial-gradient(circle,rgba(76,175,120,.12),transparent 70%);
  opacity:.55;
}
html[data-theme="dark"] .tf-sports-orb-b{
  background:radial-gradient(circle,rgba(76,175,120,.08),transparent 70%);
}

/* Staggered panel entrance */
.tf-sports-page.is-ready .tf-betting-sidebar,
.tf-sports-page.is-ready .tf-betting-main > *,
.tf-sports-page.is-ready .tf-ticket-panel{
  animation:sp-rise .55s var(--sp-ease) both;
}
.tf-sports-page.is-ready .tf-betting-sidebar{animation-delay:.04s}
.tf-sports-page.is-ready .tf-betting-main > *:nth-child(1){animation-delay:.1s}
.tf-sports-page.is-ready .tf-betting-main > *:nth-child(2){animation-delay:.16s}
.tf-sports-page.is-ready .tf-betting-main > *:nth-child(3){animation-delay:.22s}
.tf-sports-page.is-ready .tf-ticket-panel{animation-delay:.18s}

.tf-sports-page.is-ready .tf-match-link{
  animation:sp-fade-slide .4s var(--sp-ease) both;
}
.tf-sports-page.is-ready .tf-match-link:nth-child(1){animation-delay:.12s}
.tf-sports-page.is-ready .tf-match-link:nth-child(2){animation-delay:.16s}
.tf-sports-page.is-ready .tf-match-link:nth-child(3){animation-delay:.2s}
.tf-sports-page.is-ready .tf-match-link:nth-child(4){animation-delay:.24s}
.tf-sports-page.is-ready .tf-match-link:nth-child(5){animation-delay:.28s}
.tf-sports-page.is-ready .tf-match-link:nth-child(6){animation-delay:.32s}
.tf-sports-page.is-ready .tf-match-link:nth-child(n+7){animation-delay:.36s}

/* Soft card hover (no harsh neon border) */
@media (hover:hover) and (pointer:fine){
  .tf-sports-page .tf-scoreboard:hover,
  .tf-sports-page .tf-prediction-card:hover,
  .tf-sports-page .tf-markets-card:hover,
  .tf-sports-page .tf-ticket-panel:hover{
    transform:translateY(-2px);
    box-shadow:
      var(--sp-shadow),
      0 10px 24px rgba(26,31,28,.05)!important;
    border-color:var(--sp-border)!important;
  }
  .tf-sports-page .tf-betting-sidebar:hover{
    border-color:var(--sp-border)!important;
  }
}

/* Live status shimmer on LIVE pills */
.tf-sports-page .tf-sidebar-live em,
.tf-sports-page .tf-match-link-status .tf-sidebar-live em,
.tf-sports-page [class*="live"] em{
  position:relative;
  overflow:hidden;
}
.tf-sports-page .tf-sidebar-live em::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.35) 50%,transparent 60%);
  transform:translateX(-120%);
  animation:sp-shimmer 2.8s ease-in-out infinite;
}

/* Chart draw feel */
.tf-sports-page .tf-prediction-chart svg,
.tf-sports-page .tf-chart-shell svg{
  animation:sp-chart-in .7s var(--sp-ease) .2s both;
}
.tf-sports-page .tf-prediction-chart path,
.tf-sports-page .tf-chart-shell path{
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Outcome / market buttons */
.tf-sports-page .tf-moneyline-pill,
.tf-sports-page .tf-ticket-tabs button,
.tf-sports-page .tf-quick-amounts button{
  transition:
    transform .2s var(--sp-ease),
    background .2s ease,
    border-color .2s ease,
    box-shadow .2s ease,
    color .2s ease;
}
.tf-sports-page .tf-moneyline-pill:hover,
.tf-sports-page .tf-ticket-tabs button:hover,
.tf-sports-page .tf-quick-amounts button:hover{
  transform:translateY(-1px) scale(1.02);
}
.tf-sports-page .tf-moneyline-pill:active,
.tf-sports-page .tf-ticket-tabs button:active,
.tf-sports-page .tf-quick-amounts button:active{
  transform:scale(.98);
}

/* Primary buy / place action */
.tf-sports-page .tf-ticket-panel .btn-primary{
  position:relative;
  overflow:hidden;
  transition:transform .2s var(--sp-ease), box-shadow .25s ease, filter .2s ease;
}
.tf-sports-page .tf-ticket-panel .btn-primary:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(47,158,99,.18);
  filter:none;
}
.tf-sports-page .tf-ticket-panel .btn-primary::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.12) 48%,transparent 66%);
  transform:translateX(-130%);
  animation:sp-shimmer 3.2s ease-in-out infinite;
  pointer-events:none;
}

/* Scoreboard team pulse when live */
.tf-sports-page .tf-scoreboard.is-live,
.tf-sports-page .tf-scoreboard:has(.live),
.tf-sports-page .tf-match-hero{
  position:relative;
}
.tf-sports-page .tf-match-hero h1{
  letter-spacing:-.03em;
}
.tf-sports-page .tf-live-pill.tf-live-now{
  animation:sp-live-pill 2s ease-in-out infinite;
}

/* Loading state */
.tf-sports-page .muted{
  animation:sp-pulse-soft 1.4s ease-in-out infinite;
}
.tf-sports-page .tf-sports-loading{
  width:min(520px,calc(100% - 24px));
  margin:48px auto;
  padding:28px 24px!important;
  display:grid;
  gap:12px;
  text-align:left;
}
.tf-sports-page .tf-skeleton-bar,
.tf-sports-page .tf-skeleton-line{
  border-radius:8px;
  background:linear-gradient(90deg,var(--sp-soft) 0%,rgba(47,158,99,.1) 50%,var(--sp-soft) 100%);
  background-size:200% 100%;
  animation:sp-shimmer-bg 1.4s ease-in-out infinite;
}
.tf-sports-page .tf-skeleton-bar{height:14px;width:42%}
.tf-sports-page .tf-skeleton-line{height:10px;width:100%}
.tf-sports-page .tf-skeleton-line.short{width:68%}
.tf-sports-page .tf-sports-loading .muted{margin:4px 0 0;font-size:13px}

@keyframes sp-rise{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:none}
}
@keyframes sp-fade-slide{
  from{opacity:0;transform:translateX(-8px)}
  to{opacity:1;transform:none}
}
@keyframes sp-live-pulse{
  0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(239,68,68,.55)}
  50%{opacity:.75;box-shadow:0 0 0 7px rgba(239,68,68,0)}
}
@keyframes sp-orb-drift{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(28px,18px,0) scale(1.08)}
}
@keyframes sp-shimmer{
  0%,70%{transform:translateX(-130%)}
  100%{transform:translateX(130%)}
}
@keyframes sp-shimmer-bg{
  0%{background-position:100% 0}
  100%{background-position:-100% 0}
}
@keyframes sp-chart-in{
  from{opacity:0;transform:translateY(8px) scale(.98)}
  to{opacity:1;transform:none}
}
@keyframes sp-title-sheen{
  0%,100%{background-position:100% 0}
  50%{background-position:0% 0}
}
@keyframes sp-live-pill{
  0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.35)}
  50%{box-shadow:0 0 0 6px rgba(239,68,68,0)}
}
@keyframes sp-pulse-soft{
  0%,100%{opacity:.55}
  50%{opacity:1}
}

@media (prefers-reduced-motion:reduce){
  .tf-sports-orb,
  .tf-sports-page.is-ready .tf-betting-sidebar,
  .tf-sports-page.is-ready .tf-betting-main > *,
  .tf-sports-page.is-ready .tf-ticket-panel,
  .tf-sports-page.is-ready .tf-match-link,
  .tf-sports-page .tf-betting-live span,
  .tf-sports-page .tf-sidebar-live em::after,
  .tf-sports-page .tf-prediction-chart svg,
  .tf-sports-page .tf-chart-shell svg,
  .tf-sports-page .tf-live-pill.tf-live-now,
  .tf-sports-page .muted,
  .tf-sports-page .tf-ticket-panel .btn-primary::after,
  .tf-sports-page .tf-skeleton-bar,
  .tf-sports-page .tf-skeleton-line{
    animation:none!important;
  }
  .tf-sports-page .tf-match-link:hover,
  .tf-sports-page .tf-scoreboard:hover,
  .tf-sports-page .tf-prediction-card:hover,
  .tf-sports-page .tf-markets-card:hover,
  .tf-sports-page .tf-ticket-panel:hover{
    transform:none!important;
  }
}
