.fds-app {
    --fds-primary: var(--site-primary, #102a43);
    --fds-accent: var(--site-accent, #ffb000);
    --fds-border: var(--site-border, #e4eaf0);
    --fds-muted: #64748b;
    color: var(--site-text, #172033);
    font-family: inherit;
    margin: 0 auto 28px;
    max-width: 1180px;
}

.fds-app *, .fds-app *::before, .fds-app *::after { box-sizing: border-box; }
.fds-app__header { align-items: flex-end; display: flex; gap: 20px; justify-content: space-between; margin: 0 0 16px; }
.fds-title { color: var(--fds-primary); font-size: clamp(25px, 4vw, 38px); line-height: 1.15; margin: 2px 0 0; }
.fds-eyebrow { color: var(--fds-muted); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fds-last-update { color: var(--fds-muted); font-size: 12px; white-space: nowrap; }
.fds-date-nav { align-items: stretch; background: #fff; border: 1px solid var(--fds-border); border-radius: 14px; display: flex; gap: 6px; margin: 0 0 16px; overflow: hidden; padding: 6px; }
.fds-date-list { display: grid; flex: 1; gap: 5px; grid-template-columns: repeat(var(--fds-date-count, 5), minmax(72px, 1fr)); }
.fds-date-button, .fds-date-arrow { appearance: none; background: transparent; border: 0; border-radius: 9px; color: inherit; cursor: pointer; font: inherit; min-height: 48px; padding: 6px 10px; }
.fds-date-button span, .fds-date-button strong { display: block; }
.fds-date-button span { color: var(--fds-muted); font-size: 11px; }
.fds-date-button strong { font-size: 14px; margin-top: 2px; }
.fds-date-button:hover, .fds-date-button.is-active { background: var(--fds-primary); color: #fff; }
.fds-date-button:hover span, .fds-date-button.is-active span { color: rgba(255,255,255,.72); }
.fds-date-arrow { background: #f4f7fa; font-size: 24px; min-width: 42px; }
.fds-date-arrow:disabled { cursor: not-allowed; opacity: .35; }
.fds-data-target { min-height: 120px; position: relative; transition: opacity .2s ease; }
.fds-data-target.is-loading { opacity: .45; pointer-events: none; }
.fds-data-summary { align-items: center; background: linear-gradient(135deg, var(--fds-primary), color-mix(in srgb, var(--fds-primary) 78%, #326b91)); border-radius: 12px; color: rgba(255,255,255,.78); display: flex; flex-wrap: wrap; font-size: 11px; gap: 8px 18px; margin: 0 0 12px; padding: 10px 14px; }
.fds-data-summary span { align-items: center; display: inline-flex; gap: 6px; }
.fds-data-summary b { color: #fff; font-size: 14px; }
.fds-dot { background: #9aa7b4; border-radius: 50%; display: inline-block; height: 7px; width: 7px; }
.fds-dot--finished { background: #70d19a; }
.fds-dot--live { animation: fds-pulse 1.4s infinite; background: #ff3b6a; }
.fds-dot--upcoming { background: var(--fds-accent); }
@keyframes fds-pulse { 50% { box-shadow: 0 0 0 5px rgba(255,59,106,0); } 0%,100% { box-shadow: 0 0 0 0 rgba(255,59,106,.35); } }
.fds-league-card { background: #fff; border: 1px solid var(--fds-border); border-radius: 14px; box-shadow: 0 8px 24px rgba(16,42,67,.05); margin: 0 0 14px; overflow: hidden; }
.fds-league-card__head { align-items: center; background: color-mix(in srgb, var(--fds-primary) 5%, #fff); border-bottom: 1px solid var(--fds-border); display: flex; gap: 16px; justify-content: space-between; min-height: 45px; padding: 9px 14px; }
.fds-league-card__head h2 { align-items: center; color: var(--fds-primary); display: flex; font-size: 14px; font-weight: 800; gap: 8px; line-height: 1.25; margin: 0; text-transform: uppercase; }
.fds-league-card__head h2 small { background: color-mix(in srgb, var(--fds-primary) 9%, #fff); border-radius: 999px; color: var(--fds-muted); font-size: 9px; padding: 3px 7px; text-transform: none; }
.fds-league-card__head a { color: var(--fds-primary); font-size: 12px; font-weight: 700; text-decoration: none; }
.fds-match { align-items: center; border-bottom: 1px solid var(--fds-border); display: grid; gap: 12px; grid-template-columns: 76px minmax(0,1fr) 88px minmax(0,1fr) 150px; min-height: 76px; padding: 9px 14px; }
.fds-match:last-child { border-bottom: 0; }
.fds-match-time { text-align: center; }
.fds-match-time time { color: var(--fds-primary); display: block; font-size: 14px; font-weight: 900; }
.fds-status { border-radius: 999px; display: inline-block; font-size: 8px; font-weight: 900; margin-top: 4px; padding: 2px 6px; text-transform: uppercase; }
.fds-status--finished { background: #e6f7ed; color: #157a43; }
.fds-status--live { background: #ffe8ee; color: #d60037; }
.fds-status--upcoming { background: #fff5d9; color: #8a5b00; }
.fds-team { align-items: center; display: flex; font-size: 14px; font-weight: 800; gap: 9px; min-width: 0; }
.fds-team span { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fds-team small { color: var(--fds-muted); display: block; font-size: 9px; font-weight: 600; line-height: 1.2; margin-top: 2px; }
.fds-team i { background: linear-gradient(135deg, color-mix(in srgb, var(--fds-primary) 75%, #fff), var(--fds-primary)); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 2px 7px rgba(16,42,67,.16); color: #fff; display: inline-grid; flex: 0 0 31px; font-size: 11px; font-style: normal; height: 31px; place-items: center; width: 31px; }
.fds-team--home { text-align: right; }
.fds-team--home { justify-content: flex-end; }
.fds-score { text-align: center; }
.fds-score strong { background: #f1f5f9; border: 1px solid #e3e9ef; border-radius: 8px; display: inline-block; font-size: 16px; min-width: 64px; padding: 6px 7px; }
.fds-score small { color: var(--fds-muted); display: block; font-size: 9px; font-weight: 800; letter-spacing: .04em; margin-top: 3px; text-transform: uppercase; }
.fds-match.is-live .fds-score strong { background: #e9003f; color: #fff; }
.fds-match.is-live .fds-score small { color: #e9003f; }
.fds-match-meta { align-items: flex-end; color: var(--fds-muted); display: flex; flex-direction: column; font-size: 9px; gap: 3px; min-width: 0; }
.fds-match-meta span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fds-channel { color: var(--fds-primary); font-weight: 700; }
.fds-empty { background: #fff; border: 1px dashed #c8d3df; border-radius: 14px; padding: 42px 20px; text-align: center; }
.fds-empty strong { color: var(--fds-primary); font-size: 18px; }
.fds-empty p { color: var(--fds-muted); margin: 7px 0 0; }
.fds-empty__action { background: var(--fds-primary); border-radius: 8px; color: #fff; display: inline-block; font-size: 12px; font-weight: 800; margin-top: 14px; padding: 8px 13px; text-decoration: none; }
.fds-odds-table-wrap, .fds-standings-wrap { overflow-x: auto; }
.fds-odds-table, .fds-standings { border-collapse: collapse; font-size: 13px; min-width: 880px; width: 100%; }
.fds-odds-table th, .fds-odds-table td, .fds-standings th, .fds-standings td { border-bottom: 1px solid var(--fds-border); padding: 10px 12px; text-align: center; }
.fds-odds-table th, .fds-standings th { background: #f7f9fb; color: var(--fds-muted); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.fds-odds-table tbody tr:last-child td, .fds-standings tbody tr:last-child td { border-bottom: 0; }
.fds-odds-teams { display: grid; gap: 2px; grid-template-columns: 48px minmax(130px,1fr); text-align: left !important; }
.fds-odds-teams time { color: var(--fds-muted); grid-row: span 2; margin: auto 0; }
.fds-odds-teams strong { font-size: 12px; }
.fds-odds-teams .is-favorite { color: #d60037; }
.fds-odds-teams em { background: #d60037; border-radius: 999px; color: #fff; font-size: 8px; font-style: normal; margin-left: 5px; padding: 2px 5px; text-transform: uppercase; }
.fds-odds-table td > span, .fds-odds-table td > small { display: block; }
.fds-odds-table td > small { color: var(--fds-muted); margin-top: 3px; }
.fds-market-line { color: var(--fds-primary); font-size: 14px; font-weight: 900; }
.fds-league-tabs { background: var(--fds-primary); border-radius: 12px; display: flex; gap: 6px; margin: 0 0 16px; overflow-x: auto; padding: 6px; }
.fds-league-tabs a { border-radius: 8px; color: rgba(255,255,255,.72); flex: 0 0 auto; font-size: 13px; font-weight: 800; padding: 9px 15px; text-decoration: none; }
.fds-league-tabs a.is-active, .fds-league-tabs a:hover { background: var(--fds-accent); color: #111827; }
.fds-league-description { background: #fff; border: 1px solid var(--fds-border); border-radius: 12px; margin: 0 0 16px; padding: 16px 18px; }
.fds-league-description > :first-child { margin-top: 0; }
.fds-league-description > :last-child { margin-bottom: 0; }
.fds-round-filter { align-items: center; background: #fff; border: 1px solid var(--fds-border); border-radius: 12px; display: flex; gap: 10px; justify-content: flex-end; margin: 0 0 12px; padding: 9px 12px; }
.fds-round-current { color: var(--fds-muted); font-size: 12px; margin-right: auto; }
.fds-round-current strong { color: var(--fds-primary); }
.fds-round-filter label { color: var(--fds-muted); font-size: 12px; font-weight: 700; }
.fds-round-filter select { background: #fff; border: 1px solid var(--fds-border); border-radius: 8px; min-width: 150px; padding: 8px 28px 8px 10px; }
.fds-standings { background: #fff; border: 1px solid var(--fds-border); min-width: 620px; }
.fds-standings td:nth-child(2), .fds-standings th:nth-child(2) { text-align: left; }
.fds-standings tbody tr:nth-child(-n+4) td:first-child b { background: var(--fds-primary); border-radius: 50%; color: #fff; display: inline-grid; height: 24px; place-items: center; width: 24px; }
.fds-standings-note { color: var(--fds-muted); font-size: 11px; margin: 8px 2px 0; }
.fds-virtual-main { margin: 24px auto; max-width: var(--site-width, 1200px); padding: 0 16px; }

@media (max-width: 720px) {
    .fds-app__header { align-items: flex-start; display: block; }
    .fds-title { font-size: clamp(24px, 8vw, 32px); }
    .fds-last-update { display: block; margin-top: 5px; }
    .fds-date-list { grid-template-columns: repeat(3, minmax(68px,1fr)); overflow: hidden; }
    .fds-date-list .fds-date-button:nth-child(n+4) { display: none; }
    .fds-date-arrow { min-width: 36px; }
    .fds-data-summary { gap: 7px 12px; }
    .fds-match { gap: 6px; grid-template-columns: 48px minmax(0,1fr) 60px minmax(0,1fr); min-height: 78px; padding: 7px 9px; }
    .fds-match-meta { align-items: center; border-top: 1px dashed var(--fds-border); flex-direction: row; grid-column: 2 / -1; justify-content: center; padding-top: 5px; }
    .fds-team { font-size: 12px; }
    .fds-team i { display: none; }
    .fds-team small { display: none; }
    .fds-match-time time { font-size: 12px; }
    .fds-status { font-size: 7px; padding: 2px 4px; }
    .fds-score strong { font-size: 13px; min-width: 52px; }
    .fds-league-card__head { padding: 9px 10px; }
    .fds-league-card__head h2 { font-size: 12px; }
    .fds-league-tabs { gap: 4px; padding: 5px; }
    .fds-league-tabs a { font-size: 12px; padding: 8px 11px; }
    .fds-round-filter { align-items: stretch; display: grid; grid-template-columns: auto minmax(0, 1fr); }
    .fds-round-current { flex: 1 0 100%; }
    .fds-round-current { grid-column: 1 / -1; margin: 0; }
    .fds-round-filter label { align-self: center; }
    .fds-round-filter select { min-width: 0; width: 100%; }

    .fds-odds-table-wrap { overflow: visible; }
    .fds-odds-table { border-collapse: separate; display: block; min-width: 0; width: 100%; }
    .fds-odds-table thead { display: none; }
    .fds-odds-table tbody { background: #f5f7fa; display: grid; gap: 10px; padding: 10px; }
    .fds-odds-table tr { background: #fff; border: 1px solid var(--fds-border); border-radius: 11px; box-shadow: 0 3px 12px rgba(16,42,67,.04); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; }
    .fds-odds-table td { border: 0; border-top: 1px solid var(--fds-border); min-width: 0; padding: 9px 8px; text-align: left; }
    .fds-odds-table td:nth-child(even) { border-right: 1px solid var(--fds-border); }
    .fds-odds-table td::before { color: var(--fds-muted); content: attr(data-label); display: block; font-size: 8px; font-weight: 900; letter-spacing: .04em; margin-bottom: 4px; text-transform: uppercase; }
    .fds-odds-table .fds-odds-teams { border-top: 0; display: grid; grid-column: 1 / -1; grid-template-columns: 45px minmax(0, 1fr); padding: 10px; }
    .fds-odds-table .fds-odds-teams::before { display: none; }
    .fds-odds-teams strong { font-size: 11px; overflow-wrap: anywhere; }
    .fds-odds-table td > small { font-size: 9px; line-height: 1.35; }
    .fds-market-line { font-size: 13px; }

    .fds-standings-wrap { overflow: visible; }
    .fds-standings { min-width: 0; table-layout: fixed; width: 100%; }
    .fds-standings th, .fds-standings td { font-size: 11px; padding: 8px 4px; }
    .fds-standings .fds-col-position { width: 42px; }
    .fds-standings .fds-col-played { width: 42px; }
    .fds-standings .fds-col-diff { width: 48px; }
    .fds-standings .fds-col-points { width: 42px; }
    .fds-standings .fds-col-won, .fds-standings .fds-col-drawn, .fds-standings .fds-col-lost { display: none; }
    .fds-standings .fds-col-team { overflow-wrap: anywhere; }
    .fds-standings tbody tr:nth-child(-n+4) td:first-child b { height: 22px; width: 22px; }
    .fds-standings-note { padding: 0 4px; }
}

@media (max-width: 390px) {
    .fds-odds-table tbody { gap: 8px; padding: 7px; }
    .fds-odds-table td { padding: 8px 6px; }
    .fds-odds-table .fds-odds-teams { padding: 9px 7px; }
    .fds-date-button, .fds-date-arrow { padding-left: 5px; padding-right: 5px; }
}

@supports not (color: color-mix(in srgb, #000, #fff)) {
    .fds-league-card__head { background: #f7f9fb; }
}
