.tbs-live-scores-widget {
  --tbsls-green: #0f7a35;
  --tbsls-green-dark: #0b5d29;
  --tbsls-green-soft: #eef8f1;
  --tbsls-line: #dcebe1;
  --tbsls-line-soft: #edf4ef;
  --tbsls-text: #102016;
  --tbsls-muted: #5e6e62;
  --tbsls-red: #ff3151;
  --tbsls-bg: #ffffff;
  --tbsls-card: #fbfefc;
  color: var(--tbsls-text);
  font-family: inherit;
  width: 100%;
}
.tbs-live-scores-widget * { box-sizing: border-box; }
.tbsls-shell { background: var(--tbsls-bg); border: 1px solid var(--tbsls-line); border-radius: 18px; overflow: hidden; box-shadow: 0 10px 26px rgba(15,122,53,.07); }
.tbsls-topbar { padding: 14px 14px 10px; border-bottom: 1px solid var(--tbsls-line); background: linear-gradient(180deg,#fff 0,#fbfefc 100%); }
.tbsls-brand { display:flex; align-items:center; gap:10px; min-width:0; margin-bottom: 12px; flex:1 1 auto; }
.tbsls-brand-icon { width:34px; height:34px; border-radius:50%; flex:0 0 34px; display:grid; place-items:center; background:var(--tbsls-green-soft); color:var(--tbsls-green); }
.tbsls-brand-icon svg { width:19px; height:19px; }
.tbsls-title { margin:0; font-size:18px; line-height:1.08; font-weight:900; letter-spacing:-.025em; text-transform:uppercase; overflow:visible; text-overflow:clip; white-space:normal; text-wrap:balance; }
.tbsls-tabs { display:grid; grid-template-columns: repeat(3, 1fr); gap:6px; width:100%; }
.tbsls-tab { appearance:none; border:1px solid var(--tbsls-line); background:#fff; color:var(--tbsls-text); border-radius:999px; padding:8px 6px; font-size:12px; font-weight:900; line-height:1; cursor:pointer; transition:.15s ease; }
.tbsls-tab.is-active { background:var(--tbsls-green); color:#fff; border-color:var(--tbsls-green); }
.tbsls-filters { display:grid; grid-template-columns: 1fr 1fr; gap:8px; padding:10px 12px; border-bottom:1px solid var(--tbsls-line); background:#fff; }
.tbsls-filter { display:flex; flex-direction:column; gap:4px; min-width:0; margin:0; }
.tbsls-filter span { font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:var(--tbsls-muted); font-weight:900; }
.tbsls-filter select,
.tbsls-filter input { width:100%; border:1px solid var(--tbsls-line); border-radius:10px; background:#fff; color:var(--tbsls-text); padding:8px 9px; min-height:36px; font-size:12px; font-weight:700; outline:none; }
.tbsls-filter select:focus,
.tbsls-filter input:focus { border-color: var(--tbsls-green); box-shadow: 0 0 0 3px rgba(15,122,53,.1); }
.tbsls-search-filter { display:none; grid-column: 1 / -1; }
.tbsls-is-live .tbsls-search-filter,
.tbsls-is-results .tbsls-search-filter { display:flex; }
.tbsls-content { padding:10px; background:#f7fbf8; }
.tbsls-loading, .tbsls-empty, .tbsls-error { padding:24px 12px; text-align:center; color:var(--tbsls-muted); font-weight:700; }
.tbsls-error { color:#a52c3e; }
.tbsls-groups { display:flex; flex-direction:column; gap:10px; }
.tbsls-group { background:#fff; border:1px solid var(--tbsls-line); border-radius:16px; overflow:hidden; }
.tbsls-group-header { width:100%; appearance:none; border:0; background:#fff; padding:12px; display:flex; align-items:center; justify-content:space-between; gap:10px; cursor:pointer; text-align:left; }
.tbsls-group-left { display:flex; align-items:center; gap:10px; min-width:0; }
.tbsls-flag-wrap { width:30px; height:21px; flex:0 0 30px; display:grid; place-items:center; overflow:hidden; border-radius:4px; background:#f2f6f3; border:1px solid #e3eee7; }
.tbsls-flag-wrap img, .tbsls-flag-wrap svg { width:100%; height:100%; object-fit:cover; display:block; }
.tbsls-group-title { min-width:0; display:block; }
.tbsls-group-country { display:inline; font-size:11px; line-height:1.15; font-weight:900; text-transform:uppercase; letter-spacing:.04em; color:var(--tbsls-muted); margin-right:4px; }
.tbsls-group-league { display:inline; font-size:15px; line-height:1.15; font-weight:900; color:var(--tbsls-text); }
.tbsls-group-meta { display:flex; align-items:center; gap:9px; flex:0 0 auto; }
.tbsls-count { min-width:31px; height:31px; padding:0 8px; border-radius:999px; display:grid; place-items:center; background:var(--tbsls-green); color:#fff; font-size:13px; font-weight:900; }
.tbsls-chevron { width:10px; height:10px; border-right:2px solid #6a796d; border-bottom:2px solid #6a796d; transform:rotate(45deg); margin-top:-4px; transition:.15s ease; }
.tbsls-group.is-open .tbsls-chevron { transform:rotate(-135deg); margin-top:2px; }
.tbsls-group-body { display:none; border-top:1px solid var(--tbsls-line-soft); }
.tbsls-group.is-open .tbsls-group-body { display:block; }
.tbsls-match-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px; border-top:1px solid var(--tbsls-line-soft); background:#fff; }
.tbsls-group-body .tbsls-match-row:first-child { border-top:0; }
.tbsls-teams { min-width:0; flex:1 1 auto; display:flex; flex-direction:column; gap:8px; }
.tbsls-team { display:grid; grid-template-columns:28px minmax(0,1fr) 22px; align-items:center; gap:8px; min-width:0; }
.tbsls-team-badge { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; flex:0 0 28px; background:var(--tbsls-green-soft); color:var(--tbsls-green-dark); border:1px solid #bfe2ca; font-size:10px; line-height:1; font-weight:900; letter-spacing:-.02em; text-transform:uppercase; overflow:hidden; }
.tbsls-team-logo { background:#fff; border-color:#e4eee8; padding:2px; }
.tbsls-team-logo img { width:100%; height:100%; object-fit:contain; display:block; }
.tbsls-team-name { min-width:0; font-size:14px; line-height:1.15; font-weight:850; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tbsls-team-score { font-size:16px; line-height:1; font-weight:950; text-align:right; }
.tbsls-match-side { flex:0 0 86px; min-width:86px; text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:5px; }
.tbsls-live-row .tbsls-match-side { flex-basis:104px; min-width:104px; }
.tbsls-kickoff-note { font-size:10.5px; line-height:1.15; font-weight:750; color:var(--tbsls-muted); white-space:normal; max-width:104px; }
.tbsls-main-score { font-size:23px; line-height:1; font-weight:950; letter-spacing:-.03em; color:var(--tbsls-text); }
.tbsls-pill-live { display:inline-flex; align-items:center; gap:6px; padding:5px 8px; border-radius:999px; background:rgba(255,49,81,.12); color:var(--tbsls-red); font-size:11px; line-height:1; font-weight:950; text-transform:uppercase; letter-spacing:.04em; }
.tbsls-pill-live:before { content:''; width:7px; height:7px; border-radius:50%; background:currentColor; animation:tbsls-blink 1.1s infinite; }
.tbsls-minute { font-size:17px; line-height:1; font-weight:950; color:var(--tbsls-red); }
.tbsls-minute.is-live { animation:tbsls-blink-text 1.1s infinite; }
.tbsls-result-label { display:inline-flex; padding:5px 9px; border-radius:999px; background:var(--tbsls-green-soft); color:var(--tbsls-green-dark); font-size:11px; line-height:1; font-weight:950; text-transform:uppercase; letter-spacing:.04em; }
.tbsls-kickoff-date { font-size:11px; line-height:1.05; font-weight:850; color:var(--tbsls-muted); text-transform:uppercase; max-width:74px; }
.tbsls-kickoff-time { font-size:18px; line-height:1; font-weight:950; color:var(--tbsls-text); }
.tbsls-vs { font-size:13px; font-weight:900; color:var(--tbsls-muted); }
@keyframes tbsls-blink { 0%,100%{opacity:1} 50%{opacity:.25} }
@keyframes tbsls-blink-text { 0%,100%{opacity:1} 50%{opacity:.45} }
@media (min-width: 700px) {
  .tbsls-topbar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; }
  .tbsls-brand { margin-bottom:0; }
  .tbsls-brand-icon { width:40px; height:40px; flex-basis:40px; }
  .tbsls-brand-icon svg { width:23px; height:23px; }
  .tbsls-title { font-size:22px; line-height:1.08; max-width:520px; }
  .tbsls-tabs { width:auto; min-width:360px; gap:8px; }
  .tbsls-tab { padding:10px 18px; font-size:14px; }
  .tbsls-filters { grid-template-columns: minmax(180px, 260px) minmax(180px, 300px) minmax(220px, 360px); gap:12px; padding:13px 20px; }
  .tbsls-filter select, .tbsls-filter input { font-size:14px; min-height:40px; }
  .tbsls-search-filter { grid-column:auto; }
  .tbsls-content { padding:14px; }
  .tbsls-group-header { padding:14px 16px; }
  .tbsls-group-league { font-size:17px; }
  .tbsls-match-row { padding:13px 16px; }
  .tbsls-team { grid-template-columns:30px minmax(0,1fr) 28px; gap:10px; }
  .tbsls-team-badge { width:30px; height:30px; font-size:10px; }
  .tbsls-team-name { font-size:15px; }
  .tbsls-match-side { flex-basis:108px; min-width:108px; }
  .tbsls-live-row .tbsls-match-side { flex-basis:150px; min-width:150px; }
  .tbsls-kickoff-note { max-width:150px; font-size:12px; }
  .tbsls-kickoff-date { max-width:none; }
}
@media (max-width: 390px) {
  .tbsls-content { padding:8px; }
  .tbsls-topbar { padding:12px 10px 9px; }
  .tbsls-filters { padding:9px 10px; gap:6px; }
  .tbsls-tab { font-size:11px; padding:8px 4px; }
  .tbsls-group-header { padding:11px 10px; }
  .tbsls-match-row { padding:11px 10px; gap:7px; }
  .tbsls-team { grid-template-columns:25px minmax(0,1fr) 18px; gap:6px; }
  .tbsls-team-badge { width:25px; height:25px; font-size:9px; }
  .tbsls-team-name { font-size:13px; }
  .tbsls-team-score { font-size:15px; }
  .tbsls-match-side { flex-basis:70px; min-width:70px; }
  .tbsls-live-row .tbsls-match-side { flex-basis:86px; min-width:86px; }
  .tbsls-kickoff-note { max-width:86px; font-size:9.5px; }
  .tbsls-main-score { font-size:20px; }
  .tbsls-pill-live { font-size:10px; padding:5px 7px; }
  .tbsls-minute { font-size:15px; }
  .tbsls-kickoff-date { font-size:10px; max-width:60px; }
}


/* v7: cleaner kickoff display and scheduled/result layouts */
.tbsls-kickoff-note {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  max-width: none;
  white-space: nowrap;
  color: var(--tbsls-muted);
}
.tbsls-ko-short { display: none; }
.tbsls-team-no-score { grid-template-columns: 28px minmax(0,1fr); }
.tbsls-scheduled-side { gap: 4px; }
.tbsls-vs-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--tbsls-green-soft);
  color: var(--tbsls-green-dark);
  font-size: 11px;
  line-height: 1;
  font-weight: 950;
  text-transform: uppercase;
}
.tbsls-result-row .tbsls-kickoff-note { margin-top: 1px; }
@media (max-width: 699px) {
  .tbsls-live-row .tbsls-match-side,
  .tbsls-result-row .tbsls-match-side {
    flex-basis: 112px;
    min-width: 112px;
  }
  .tbsls-scheduled-row .tbsls-match-side {
    flex-basis: 86px;
    min-width: 86px;
  }
  .tbsls-kickoff-note {
    font-size: 10px;
    line-height: 1;
  }
  .tbsls-ko-full { display: none; }
  .tbsls-ko-short { display: inline; }
  .tbsls-scheduled-row .tbsls-team { grid-template-columns: 28px minmax(0,1fr); }
}
@media (max-width: 390px) {
  .tbsls-live-row .tbsls-match-side,
  .tbsls-result-row .tbsls-match-side {
    flex-basis: 108px;
    min-width: 108px;
  }
  .tbsls-scheduled-row .tbsls-match-side {
    flex-basis: 78px;
    min-width: 78px;
  }
  .tbsls-kickoff-note {
    font-size: 9.5px;
  }
  .tbsls-team-no-score { grid-template-columns: 25px minmax(0,1fr); }
  .tbsls-vs-pill { height: 22px; min-width: 28px; font-size: 10px; }
}


/* v8: prevent desktop overlap on results kickoff line */
@media (min-width: 700px) {
  .tbsls-result-row .tbsls-match-side {
    flex-basis: 178px;
    min-width: 178px;
    gap: 6px;
  }
  .tbsls-result-row .tbsls-kickoff-note {
    display: block;
    white-space: normal;
    text-align: right;
    max-width: 178px;
    line-height: 1.15;
    font-size: 11px;
  }
  .tbsls-result-row .tbsls-main-score {
    font-size: 24px;
  }
}

/* v9: server-rendered SEO fallback and non-JS support */
.tbsls-server-fallback .tbsls-fallback-note,
.tbsls-noscript {
  margin: 0 0 10px;
  padding: 9px 11px;
  border: 1px solid var(--tbsls-line);
  border-radius: 12px;
  background: #fff;
  color: var(--tbsls-muted);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 700;
}
.tbsls-fallback-group-header {
  cursor: default;
}
.tbsls-fallback-match .tbsls-kickoff-note {
  white-space: nowrap;
}
@media (max-width: 699px) {
  .tbsls-server-fallback .tbsls-fallback-note,
  .tbsls-noscript {
    font-size: 11px;
    padding: 8px 10px;
  }
}


/* v10.0.3: longer H2 heading without breaking the widget header */
@media (max-width: 480px) {
  .tbsls-title { font-size:16px; line-height:1.1; }
}
@media (min-width: 1000px) {
  .tbsls-title { font-size:24px; max-width:680px; }
}


/* v10.0.4: mobile readability fixes for long teams and iOS filters */
.tbsls-team-name {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}
.tbsls-filter select {
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235e6e62' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 14px 14px;
  padding-right: 38px;
  line-height: 1.2;
}
.tbsls-filter input {
  -webkit-appearance: none;
  appearance: none;
  line-height: 1.2;
}
@media (max-width: 699px) {
  .tbsls-filters {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px 16px 14px;
  }
  .tbsls-search-filter {
    grid-column: 1 / -1;
  }
  .tbsls-filter {
    gap: 6px;
  }
  .tbsls-filter span {
    font-size: 11px;
    line-height: 1;
  }
  .tbsls-filter select,
  .tbsls-filter input {
    min-height: 44px;
    border-radius: 14px;
    font-size: 16px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .tbsls-filter input {
    padding-right: 12px;
  }
  .tbsls-team-name {
    font-size: 13.5px;
    line-height: 1.18;
  }
  .tbsls-teams {
    gap: 9px;
  }
}
@media (max-width: 390px) {
  .tbsls-filters {
    padding: 11px 12px 13px;
    gap: 9px;
  }
  .tbsls-team-name {
    font-size: 13px;
  }
}


/* v10.0.6: live-empty fallback to latest results */
.tbsls-live-results-fallback-note {
  margin-bottom: 12px;
}

/* v11.0.2: desktop Results tab kickoff spacing and duplicate label fix */
@media (min-width: 700px) {
  .tbsls-result-row .tbsls-match-side {
    flex-basis: 200px;
    min-width: 200px;
  }
  .tbsls-result-row .tbsls-kickoff-note {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    max-width: none;
    white-space: nowrap;
    text-align: right;
    line-height: 1;
    font-size: 11px;
  }
  .tbsls-result-row .tbsls-kickoff-note > span:not(.tbsls-ko-short) {
    display: inline-block;
  }
  .tbsls-result-row .tbsls-ko-short {
    display: none;
  }
  .tbsls-result-row .tbsls-ko-full {
    display: inline-block;
  }
}
