/* ═══════════════════════════════════════════════════════════════════════════
   RespinnersTV — SPORT
   Sdílený stylesheet sekce (/sport, /sport/*, /sport/sazkove-kancelare).
   Loaded via header.php pro pageCSS === 'sport' || 'sport-*' || 'sazkove-kancelare'.
   ---------------------------------------------------------------------------
   ZÁMĚR: sekce má vypadat jako informační sportovní servis, ne jako casino
   landing. Hutně, čitelně, bez ozdob. Dlouhý obsah jede na sdílených .ed-*
   primitivech (components/editorial.css), tady žije jen to, co je pro sport
   vlastní: výsledkový řádek, program, filtry, karty partnerů a AI rozbor.

   TŘI ZÁKAZY, které v tomhle souboru platí bez výjimky:
     1. žádný linear-gradient ani radial-gradient,
     2. žádná barva mimo jeden akcent #00f5ff a stupnici bílé na tmavé,
        (jediná výjimka: tlumená #e0a458 u rizik v AI rozboru),
     3. žádný box-shadow a žádný transform (kromě focus prstence a spinneru).
   Barva v téhle sekci nese informaci (aktivní stav, odkaz, živý zápas),
   nikdy není dekorace.

   DVĚ PASTI TOHOTO WEBU, na které tenhle soubor musí reagovat:
     • base.css dává KAŽDÉMU <section> display:flex a `padding: X 0`, což ubíjí
       boční okraj .rsp-container → všude padding-block, nikdy zkratka padding,
       a blokovým obalům explicitní display:block.
     • .sp-page je flex položka vycentrovaného <body>, takže by se smrskla na
       fit-content a široká tabulka by vystrčila obsah za okraj okna
       → width:100% + max-width:100%.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Režim sekce: stránka ve stránce ─────────────────────────────────────────
   Stránky nastavují $pageBodyClass = 'sport-mode' (viz includes/header.php).
   Casino dekorace (plovoucí sloty, herní shader) se v sekci nezobrazují,
   pozadí je jedna plochá tmavá barva. Nic se nevznáší, nic nesvítí. */
body.sport-mode {
    background: #0b0e14;
}
body.sport-mode .floating-slots-container,
body.sport-mode .sbg { display: none !important; }

/* ── Tokeny sekce ─────────────────────────────────────────────────────────── */
.sp-page {
    --sp-accent:      #00f5ff;
    --sp-accent-soft: rgba(0, 245, 255, 0.35);   /* rámeček hoveru / aktivní stav */
    --sp-accent-bg:   rgba(0, 245, 255, 0.10);   /* výplň aktivního stavu */

    --sp-surface:   #0d1017;   /* karta, panel, tabulka, formulář */
    --sp-surface-2: #11151d;   /* hover karty, hlavička tabulky a ligy */

    --sp-line:      rgba(255, 255, 255, 0.12);   /* rámeček prvku */
    --sp-line-soft: rgba(255, 255, 255, 0.08);   /* linka uvnitř prvku */

    --sp-ink:   #ffffff;                    /* nadpisy, jména týmů, skóre */
    --sp-ink-2: rgba(255, 255, 255, 0.72);  /* běžný text */
    --sp-ink-3: rgba(255, 255, 255, 0.48);  /* meta a popisky */

    --sp-warn:  #e0a458;   /* JEN rizika v AI rozboru, nikde jinde */

    --sp-r:    12px;   /* karta, panel, tabulka, formulář */
    --sp-r-s:   8px;   /* tlačítko, čip, input, den */
    --sp-r-xs:  4px;   /* odznak, štítek, počítadlo */

    color: var(--sp-ink);
    overflow-x: clip;
    width: 100%;
    max-width: 100%;
}

/* ── Srovnání sdílené editorial vrstvy do stejného tónu ─────────────────────
   .ed-* primitivy jsou z casino části barevnější, tady se ztlumí: gradientový
   text v nadpisech se vypíná, akcentní linka je jedna barva. */
.sp-page .ed-card,
.sp-page .ed-pill,
.sp-page .ed-tag,
.sp-page .ed-facts { --acc: var(--sp-accent); }

.sp-page .ed-band-head {
    max-width: 72ch;
    margin: 0 0 18px;
    text-align: left;
}
.sp-page .ed-band-head h2 span,
.sp-page .ed-head h2 span,
.sp-page .ed-head h3 span,
.sp-page .seo-guide-title span {
    background: none;
    -webkit-text-fill-color: currentColor;
    color: #fff;
}
.sp-page .ed-head::before,
.sp-page .ed-band-head::before { background: var(--sp-accent); width: 3px; }

.sp-page .ed-band-head p { max-width: 72ch; font-size: 0.98rem; line-height: 1.65; color: var(--sp-ink-2); }
.sp-page .ed-band-head p strong { color: #fff; font-weight: 700; }
.sp-page .ed-table tr.is-partner { --acc: var(--sp-accent); }
.sp-page .ed-callout p { margin: 0; }
.sp-page .ed-facts-v small {
    display: block;
    margin-top: 4px;
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.45;
    color: var(--sp-ink-3);
}

/* ── Blokové obaly proti globálnímu section{display:flex} ─────────────────── */
.sp-page .sp-hero,
.sp-page .sp-section,
.sp-page .sp-disclaimer { display: block; }

.sp-page .sp-hero           { padding-block: 4px 20px; }
.sp-page .sp-section        { padding-block: 40px 0; }
.sp-page .sp-section--tight { padding-block: 20px 0; }
.sp-page .sp-disclaimer     { padding-block: 40px 56px; }

/* ── Interakce ────────────────────────────────────────────────────────────── */
.sp-page a,
.sp-page button,
.sp-page summary { transition: color .12s ease, background-color .12s ease, border-color .12s ease; }
.sp-page :focus-visible { outline: 2px solid var(--sp-accent); outline-offset: 2px; }

/* ── Hlavička stránky ─────────────────────────────────────────────────────── */
.sp-page h1 {
    font-family: 'Exo 2', 'Montserrat', sans-serif;
    font-weight: 800;
    font-size: clamp(1.75rem, 3.2vw, 2.35rem);
    line-height: 1.16;
    letter-spacing: -0.01em;
    color: #fff;
    margin: 0 0 10px;
}
.sp-page h1 span {
    background: none;
    -webkit-text-fill-color: initial;
    color: var(--sp-accent);
}
.sp-hero-intro { max-width: 68ch; margin: 0 0 12px; font-size: 1.05rem; line-height: 1.65; color: var(--sp-ink-2); }
.sp-hero-intro strong { color: #fff; font-weight: 700; }

/* Meta řádek pod H1: soutěže, datum aktualizace, počty, licence. */
.sp-meta {
    margin: 0 0 14px;
    font-size: .82rem;
    line-height: 1.5;
    color: var(--sp-ink-3);
    font-variant-numeric: tabular-nums;
}
.sp-meta a { color: var(--sp-ink-2); text-decoration: underline; text-underline-offset: 2px; }

/* Dvousloupcová hlavička zůstává jen tam, kde pravý sloupec nese fakta
   (stránka sázkových kanceláří), ne jako dekorace. */
.sp-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    gap: 26px;
    align-items: start;
}
.sp-hero-main,
.sp-hero-side { min-width: 0; }

/* ── Tlačítka ─────────────────────────────────────────────────────────────── */
.sp-cta-row { display: flex; flex-wrap: wrap; gap: 10px; }

.sp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: var(--sp-r-s);
    border: 1px solid var(--sp-line);
    background: transparent;
    color: #fff;
    font-weight: 700;
    font-size: .92rem;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}
.sp-btn:hover { background: var(--sp-surface-2); border-color: var(--sp-accent-soft); }
.sp-btn--primary { background: var(--sp-accent); border-color: var(--sp-accent); color: #07070c; }
.sp-btn--primary:hover { background: #3ff8ff; border-color: #3ff8ff; color: #07070c; }
.sp-btn--lg { padding: 13px 24px; font-size: .98rem; }
.sp-btn[disabled] { opacity: .55; cursor: not-allowed; }

.sp-btn-ico,
.sp-mini-ico,
.sp-panel-ico { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; flex: 0 0 16px; }
.sp-btn-ico svg, .sp-mini-ico svg, .sp-panel-ico svg { width: 100%; height: 100%; }

.sp-inline-link { color: var(--sp-accent); text-decoration: none; }
.sp-inline-link:hover { text-decoration: underline; }

/* Jednořádkové CTA místo celého AI pruhu na podstránkách. */
.sp-inline-cta {
    display: block;
    margin: 24px 0 0;
    padding: 14px 16px;
    border: 1px solid var(--sp-line);
    border-left: 2px solid var(--sp-accent);
    border-radius: var(--sp-r-s);
    background: var(--sp-surface);
    font-size: .95rem;
    color: var(--sp-ink-2);
}
.sp-inline-cta a { color: var(--sp-accent); font-weight: 700; text-decoration: none; }
.sp-inline-cta a:hover { text-decoration: underline; }

/* Předchozí / další zpráva v detailu. */
.sp-prevnext {
    display: flex; flex-wrap: wrap; gap: 8px 20px;
    margin: 24px 0 0; padding-top: 16px;
    border-top: 1px solid var(--sp-line-soft);
    font-size: .9rem;
    color: var(--sp-ink-3);
}
.sp-prevnext a { color: var(--sp-accent); text-decoration: none; }
.sp-prevnext a:hover { text-decoration: underline; }

/* ── Panel programu ───────────────────────────────────────────────────────── */
.sp-panel {
    background: var(--sp-surface);
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    padding: 16px;
}
.sp-panel--full { display: block; }
.sp-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.sp-panel-title { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .95rem; color: #fff; }
.sp-panel-link { font-size: .84rem; color: var(--sp-accent); text-decoration: none; white-space: nowrap; }
.sp-panel-link:hover { text-decoration: underline; }
.sp-panel-note { margin: 10px 0 0; font-size: .78rem; line-height: 1.55; color: var(--sp-ink-3); }

/* ── Výsledkový výpis: jádro sekce ───────────────────────────────────────────
   Řádek je dvouřádkový jako na výsledkových serverech: čas vlevo, domácí nad
   hosty, skóre ve svislém sloupci vpravo. Tři pevné sloupce znamenají, že
   všechny zápasy v celém výpisu lícují na pixel, ať se týmy jmenují jakkoli.
   Proto tu jsou pevné šířky u času i skóre, ne auto. */
.sp-matchlist { display: grid; gap: 12px; }

.sp-league {
    display: block;
    background: var(--sp-surface);
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    overflow: hidden;
    scroll-margin-top: calc(var(--nav-height, 116px) + 12px);
}
.sp-league-head {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    margin: 0;
    padding: 9px 14px;
    background: var(--sp-surface-2);
    border-bottom: 1px solid var(--sp-line);
}
.sp-league-name {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #fff;
}
.sp-league-count {
    font-size: .72rem; font-weight: 700;
    color: var(--sp-ink-3);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r-xs);
    padding: 1px 7px;
    font-variant-numeric: tabular-nums;
}

/* Seznam musí zůstat blokový: display:flex na <ul>/<li> rozbíjí zalamování. */
.sp-matches { list-style: none; margin: 0; padding: 0; display: block; }

.sp-m {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) 34px;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--sp-line-soft);
}
.sp-m:last-child { border-bottom: 0; }
.sp-m:hover { background: var(--sp-surface-2); }

/* Čas, případně stav. Tabulární číslice drží sloupec v klidu. */
.sp-m-time {
    display: flex; flex-direction: column; align-items: flex-start;
    font-size: .82rem; font-weight: 600;
    color: var(--sp-ink-3);
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
}
.sp-m-time small { font-size: .72rem; color: var(--sp-ink-3); }
.sp-m-time.is-live { color: var(--sp-accent); font-weight: 800; }
.sp-m-time.is-done { color: var(--sp-ink-3); }
.sp-m-time.is-off  { color: var(--sp-warn); }

/* Dva týmy pod sebou, jeden grid = obě jména i obě skóre lícují. */
.sp-m-teams { display: grid; gap: 3px; min-width: 0; }
.sp-m-team {
    display: flex; align-items: center; gap: 8px;
    min-width: 0;
    font-size: .93rem;
    line-height: 1.3;
    color: var(--sp-ink-2);
}
.sp-m-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sp-m-team.is-win  { color: #fff; font-weight: 700; }
.sp-m-team.is-loss { color: var(--sp-ink-3); }
.sp-m-league {
    font-size: .74rem;
    color: var(--sp-ink-3);
    padding-top: 1px;
}

/* Skóre pod sebou. U nedohraných pomlčky, aby sloupec držel šířku. */
.sp-m-score {
    display: grid; gap: 3px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.sp-m-score b {
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--sp-ink-3);
}
.sp-m-score b.is-win { color: #fff; font-weight: 800; }
.sp-m.is-done .sp-m-score b { color: var(--sp-ink-2); }
.sp-m.is-done .sp-m-score b.is-win { color: var(--sp-accent); }

/* Živý zápas: linka u kraje, žádné blikání. */
.sp-m.is-live { background: rgba(255, 255, 255, 0.04); box-shadow: inset 2px 0 0 var(--sp-accent); }

/* Kompaktní varianta do postranních panelů. */
.sp-matches--compact .sp-m { padding: 7px 0; grid-template-columns: 48px minmax(0, 1fr) 30px; }
.sp-matches--compact .sp-m-team { font-size: .88rem; }

/* Boční seznam soutěží: z dlouhého výpisu dělá přehled. */
.sp-lnav {
    display: block;
    position: sticky;
    top: calc(var(--nav-height, 116px) + 12px);
    background: var(--sp-surface);
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    padding: 12px;
}
.sp-lnav-title {
    margin: 0 0 8px;
    font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
    color: var(--sp-ink-3);
}
.sp-lnav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.sp-lnav a {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 7px 9px;
    border-radius: var(--sp-r-s);
    font-size: .86rem;
    color: var(--sp-ink-2);
    text-decoration: none;
}
.sp-lnav a:hover { background: var(--sp-surface-2); color: #fff; }
.sp-lnav a b {
    font-size: .74rem; font-weight: 700;
    color: var(--sp-ink-3);
    font-variant-numeric: tabular-nums;
}

/* Dvousloupcové rozvržení výpisu: soutěže vlevo, zápasy vpravo. */
.sp-board { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 16px; align-items: start; }

/* ── Prázdné stavy ────────────────────────────────────────────────────────── */
.sp-empty-box {
    display: block;
    background: var(--sp-surface);
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    padding: 24px;
}
.sp-empty-box p { margin: 6px 0; color: var(--sp-ink-2); font-size: .96rem; }
.sp-empty-box p strong { color: #fff; }
.sp-empty-box--inline { padding: 16px; }
.sp-empty { color: var(--sp-ink-3); font-size: .95rem; margin: 0; }

/* ── Přepínač dnů a filtr sportů ──────────────────────────────────────────── */
.sp-filters { display: grid; gap: 12px; margin-top: 16px; }

.sp-daybar { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.sp-day {
    flex: 0 0 auto;
    display: grid; gap: 1px; justify-items: center;
    min-width: 86px;
    padding: 8px 12px;
    border-radius: var(--sp-r-s);
    border: 1px solid var(--sp-line);
    background: var(--sp-surface);
    text-decoration: none;
    color: var(--sp-ink-2);
}
.sp-day:hover { color: #fff; border-color: var(--sp-accent-soft); background: var(--sp-surface-2); }
.sp-day.is-active { background: var(--sp-accent); border-color: var(--sp-accent); color: #07070c; }
.sp-day-label { font-weight: 700; font-size: .85rem; }
.sp-day-date  { font-size: .74rem; opacity: .8; font-variant-numeric: tabular-nums; }
.sp-day-count {
    font-size: .68rem; font-weight: 800;
    background: rgba(255, 255, 255, 0.08);
    border-radius: var(--sp-r-xs); padding: 0 6px;
    font-variant-numeric: tabular-nums;
}
.sp-day.is-active .sp-day-count { background: rgba(0, 0, 0, 0.22); }

.sp-sportbar { display: flex; flex-wrap: wrap; gap: 6px; }
.sp-chip {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 7px 12px;
    border-radius: var(--sp-r-s);
    border: 1px solid var(--sp-line);
    background: var(--sp-surface);
    color: var(--sp-ink-2);
    font-size: .86rem; font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}
.sp-chip:hover { color: #fff; border-color: var(--sp-accent-soft); }
.sp-chip.is-active { color: #fff; border-color: var(--sp-accent); background: var(--sp-accent-bg); }

/* ── Rozcestník odvětví ───────────────────────────────────────────────────── */
.sp-hub-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 14px; }

.sp-hub-card {
    display: block;
    padding: 18px;
    border-radius: var(--sp-r);
    border: 1px solid var(--sp-line);
    background: var(--sp-surface);
    text-decoration: none;
    color: inherit;
}
.sp-hub-card:hover { background: var(--sp-surface-2); border-color: var(--sp-accent-soft); }

.sp-hub-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.sp-hub-ico {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; flex: 0 0 38px;
    border-radius: var(--sp-r-s);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--sp-line);
    color: #fff;
}
.sp-hub-ico-inner { display: inline-flex; width: 18px; height: 18px; }
.sp-hub-ico-inner svg { width: 100%; height: 100%; }
.sp-hub-card h3 { margin: 0; font-size: 1.05rem; font-weight: 700; color: #fff; }
.sp-hub-mech { font-size: .78rem; color: var(--sp-ink-3); }
.sp-hub-card > p { margin: 0 0 12px; font-size: .93rem; line-height: 1.6; color: var(--sp-ink-2); }
.sp-hub-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.sp-hub-meta span {
    font-size: .74rem; font-weight: 600;
    padding: 3px 8px;
    border-radius: var(--sp-r-xs);
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--sp-line);
    color: var(--sp-ink-3);
}
.sp-hub-more { display: inline-block; font-weight: 700; font-size: .88rem; color: var(--sp-accent); }
.sp-hub-live {
    display: flex; align-items: center; gap: 7px;
    margin-top: 10px; padding-top: 10px;
    border-top: 1px solid var(--sp-line-soft);
    font-size: .8rem; color: var(--sp-ink-3);
    font-variant-numeric: tabular-nums;
}

.sp-related-card { text-decoration: none; }
.sp-related-txt { display: grid; gap: 3px; }
.sp-related-txt strong { color: #fff; font-size: .98rem; }
.sp-related-txt span { color: var(--sp-ink-2); font-size: .86rem; line-height: 1.5; }

/* ── Denní zpráva ─────────────────────────────────────────────────────────── */
.sp-report {
    display: block;
    background: var(--sp-surface);
    border: 1px solid var(--sp-line);
    border-left: 2px solid var(--sp-accent);
    border-radius: var(--sp-r);
    padding: 20px;
}
.sp-report-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.sp-report-kicker { font-size: .8rem; font-weight: 700; color: var(--sp-ink-3); letter-spacing: .02em; }
.sp-report-title { margin: 0 0 8px; font-size: clamp(1.2rem, 2vw, 1.5rem); font-weight: 800; color: #fff; line-height: 1.25; }
.sp-report-perex { margin: 0 0 12px; color: var(--sp-ink-2); font-size: 1rem; line-height: 1.65; max-width: 72ch; }
.sp-report-highlights { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 7px; }
.sp-report-highlights li {
    position: relative;
    padding-left: 18px;
    color: var(--sp-ink-2);
    font-size: .94rem;
    line-height: 1.55;
}
.sp-report-highlights li::before {
    content: '';
    position: absolute; left: 0; top: .78em;
    width: 6px; height: 2px; border-radius: 1px;
    background: rgba(255, 255, 255, 0.35);
}
.sp-article-body { max-width: 74ch; }
.sp-article-body h2 { scroll-margin-top: calc(var(--nav-height, 116px) + 16px); }

/* ── Archiv zpráv ─────────────────────────────────────────────────────────── */
.sp-news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; }
.sp-news-card {
    display: block;
    padding: 18px;
    border-radius: var(--sp-r);
    border: 1px solid var(--sp-line);
    background: var(--sp-surface);
    text-decoration: none;
    color: inherit;
}
.sp-news-card:hover { background: var(--sp-surface-2); border-color: var(--sp-accent-soft); }
.sp-news-date { display: inline-flex; align-items: center; gap: 7px; font-size: .78rem; color: var(--sp-ink-3); font-variant-numeric: tabular-nums; }
.sp-news-card h3 { margin: 6px 0 8px; font-size: 1.02rem; font-weight: 700; color: #fff; line-height: 1.35; }
.sp-news-card p { margin: 0 0 10px; font-size: .9rem; color: var(--sp-ink-2); line-height: 1.6; }
.sp-news-more { font-size: .85rem; font-weight: 700; color: var(--sp-accent); }

/* ── AI pruh ──────────────────────────────────────────────────────────────── */
.sp-ai-band {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    padding: 20px;
    border-radius: var(--sp-r);
    border: 1px solid var(--sp-line);
    background: var(--sp-surface);
}
.sp-ai-band--slim { grid-template-columns: 1fr; }
.sp-ai-copy h2 { margin: 6px 0 8px; font-size: clamp(1.25rem, 2vw, 1.55rem); font-weight: 800; color: #fff; line-height: 1.25; }
.sp-ai-copy h2 span { color: currentColor; }
.sp-ai-copy p { margin: 0 0 16px; color: var(--sp-ink-2); font-size: .98rem; line-height: 1.65; max-width: 72ch; }
.sp-ai-copy p strong { color: #fff; }

.sp-ai-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.sp-ai-points li {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 11px 13px;
    border-radius: var(--sp-r-s);
    border: 1px solid var(--sp-line);
    background: rgba(255, 255, 255, 0.02);
    font-size: .91rem;
    line-height: 1.55;
    color: var(--sp-ink-2);
}
.sp-ai-points li strong { color: #fff; }
.sp-ai-points .sp-mini-ico { color: var(--sp-ink-3); margin-top: 2px; }

/* ── AI nástroj (formulář) ────────────────────────────────────────────────── */
.sp-ai-tool { display: grid; gap: 16px; }

.sp-ai-form {
    display: grid; gap: 20px;
    padding: 20px;
    border-radius: var(--sp-r);
    border: 1px solid var(--sp-line);
    background: var(--sp-surface);
}
.sp-ai-step { display: grid; gap: 10px; }
.sp-ai-step-title { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0; font-weight: 700; color: #fff; font-size: 1rem; }
.sp-ai-step-title small { flex: 1 1 100%; font-weight: 500; color: var(--sp-ink-3); font-size: .82rem; line-height: 1.45; }
.sp-ai-step-num {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; flex: 0 0 24px;
    border-radius: var(--sp-r-xs);
    background: var(--sp-accent-bg);
    border: 1px solid var(--sp-accent-soft);
    color: var(--sp-accent);
    font-size: .82rem; font-weight: 800;
}

.sp-pick-list {
    list-style: none; margin: 0; padding: 0 4px 0 0;
    display: grid; gap: 6px;
    max-height: 360px; overflow-y: auto;
}
.sp-pick { display: block; }
.sp-pick label {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 13px;
    border-radius: var(--sp-r-s);
    border: 1px solid var(--sp-line);
    background: rgba(255, 255, 255, 0.02);
    cursor: pointer;
}
.sp-pick label:hover { border-color: var(--sp-accent-soft); background: var(--sp-surface-2); }
.sp-pick input[type="checkbox"] { width: 17px; height: 17px; accent-color: #00f5ff; flex: 0 0 17px; }
.sp-pick.is-picked label { border-color: var(--sp-accent); background: var(--sp-accent-bg); }
.sp-pick-body { display: grid; gap: 2px; min-width: 0; }
.sp-pick-teams { font-size: .94rem; font-weight: 600; color: #fff; }
.sp-pick-teams i { font-style: normal; font-weight: 400; color: var(--sp-ink-3); }
.sp-pick-meta { font-size: .78rem; color: var(--sp-ink-3); font-variant-numeric: tabular-nums; }
.sp-pick-empty { margin: 0; color: var(--sp-ink-3); font-size: .92rem; }

.sp-ai-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.sp-field { display: grid; gap: 6px; }
.sp-field--full { margin-top: 12px; }
.sp-field-label { font-size: .88rem; font-weight: 700; color: #fff; }
.sp-field-label small { font-weight: 500; color: var(--sp-ink-3); }
.sp-field-hint { font-size: .78rem; color: var(--sp-ink-3); line-height: 1.45; }
.sp-field input,
.sp-field select,
.sp-field textarea {
    width: 100%;
    padding: 10px 12px;
    border-radius: var(--sp-r-s);
    border: 1px solid var(--sp-line);
    background: #090c12;
    color: #fff;
    font-family: inherit;
    font-size: .95rem;
    resize: vertical;
}
.sp-field input:focus,
.sp-field select:focus,
.sp-field textarea:focus {
    outline: none;
    border-color: var(--sp-accent);
}
.sp-field select option { background: #0d1017; color: #fff; }

.sp-ai-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.sp-ai-note { font-size: .84rem; color: var(--sp-ink-3); }
.sp-ai-legal { margin: 0; font-size: .78rem; color: var(--sp-ink-3); line-height: 1.55; }

/* ── AI výsledek ──────────────────────────────────────────────────────────── */
.sp-ai-result { display: block; }
.sp-ai-card {
    display: block;
    padding: 20px;
    border-radius: var(--sp-r);
    border: 1px solid var(--sp-line);
    background: var(--sp-surface);
}
.sp-ai-card--warn { border-color: rgba(224, 164, 88, 0.35); }
.sp-ai-card--warn p { margin: 0; color: var(--sp-warn); }
.sp-ai-card-head { margin-bottom: 10px; font-size: .8rem; font-weight: 700; color: var(--sp-ink-3); }
.sp-ai-intro { margin: 0 0 16px; font-size: 1rem; line-height: 1.65; color: #fff; }

.sp-ai-picks { display: grid; gap: 10px; margin-bottom: 16px; }
.sp-ai-pick {
    padding: 14px;
    border-radius: var(--sp-r-s);
    border: 1px solid var(--sp-line);
    background: rgba(255, 255, 255, 0.02);
}
.sp-ai-pick-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.sp-ai-pick-head strong { font-size: .98rem; color: #fff; }
.sp-conf { display: inline-flex; gap: 3px; }
.sp-conf i { width: 7px; height: 7px; border-radius: 1px; background: rgba(255, 255, 255, 0.16); }
.sp-conf i.on { background: var(--sp-accent); }
.sp-ai-market { margin: 0 0 7px; font-size: .94rem; color: #fff; font-weight: 700; }
.sp-ai-market span,
.sp-ai-unknown span {
    display: inline-block;
    font-size: .68rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase;
    padding: 2px 7px; margin-right: 8px;
    border-radius: var(--sp-r-xs);
    background: var(--sp-accent-bg);
    border: 1px solid var(--sp-accent-soft);
    color: var(--sp-accent);
    vertical-align: middle;
}
.sp-ai-unknown span {
    background: rgba(255, 255, 255, 0.05);
    border-color: var(--sp-line);
    color: var(--sp-ink-2);
}
.sp-ai-reason { margin: 0 0 7px; font-size: .93rem; line-height: 1.6; color: var(--sp-ink-2); }
.sp-ai-unknown { margin: 0; font-size: .87rem; line-height: 1.55; color: var(--sp-ink-3); }

.sp-ai-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-bottom: 14px; }
.sp-ai-sum-item {
    padding: 13px 14px;
    border-radius: var(--sp-r-s);
    border: 1px solid var(--sp-line);
    background: rgba(255, 255, 255, 0.02);
}
.sp-ai-sum-item span { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--sp-ink-3); margin-bottom: 5px; }
.sp-ai-sum-item p { margin: 0; font-size: .93rem; line-height: 1.55; color: #fff; }

/* Rizika: jediné místo v sekci s varovným tónem. */
.sp-ai-risks { margin-bottom: 14px; }
.sp-ai-risks-title { margin: 0 0 8px; font-weight: 700; color: #fff; font-size: .94rem; }
.sp-ai-risks ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sp-ai-risks li {
    position: relative; padding-left: 22px;
    font-size: .91rem; line-height: 1.55; color: var(--sp-ink-2);
}
.sp-ai-risks li::before {
    content: '!';
    position: absolute; left: 0; top: 2px;
    display: inline-flex; align-items: center; justify-content: center;
    width: 15px; height: 15px;
    border-radius: var(--sp-r-xs);
    background: rgba(224, 164, 88, 0.14);
    border: 1px solid rgba(224, 164, 88, 0.35);
    color: var(--sp-warn); font-size: .62rem; font-weight: 800;
}
.sp-ai-verdict {
    margin: 0 0 12px; padding: 13px 15px;
    border-radius: var(--sp-r-s);
    border-left: 2px solid var(--sp-accent);
    background: var(--sp-accent-bg);
    font-size: .97rem; line-height: 1.6; color: #fff;
}

.sp-ai-loading { display: flex; align-items: center; gap: 14px; }
.sp-ai-loading p { margin: 0; color: var(--sp-ink-2); }
.sp-ai-spinner {
    width: 20px; height: 20px; flex: 0 0 20px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.14);
    border-top-color: var(--sp-accent);
    animation: spSpin .9s linear infinite;
}
@keyframes spSpin { to { transform: rotate(360deg); } }

/* ── Sázkové kanceláře ────────────────────────────────────────────────────── */
.sp-book-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; }
.sp-book-grid--wide { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }

.sp-book {
    display: flex; flex-direction: column; gap: 10px;
    padding: 18px;
    border-radius: var(--sp-r);
    border: 1px solid var(--sp-line);
    background: var(--sp-surface);
}
.sp-book.is-top { border-color: var(--sp-accent-soft); }
.sp-book-rank {
    align-self: flex-start;
    font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    padding: 2px 8px;
    border-radius: var(--sp-r-xs);
    background: transparent;
    border: 1px solid var(--sp-accent);
    color: var(--sp-accent);
}
.sp-book-head { display: flex; align-items: center; gap: 12px; }
.sp-book-logo { width: auto; max-width: 96px; height: 38px; object-fit: contain; }
.sp-book-initial {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; flex: 0 0 40px;
    border-radius: var(--sp-r-s);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--sp-line);
    color: #fff; font-weight: 700; font-size: 1.05rem;
}
.sp-book-name  { margin: 0; font-weight: 700; color: #fff; font-size: .98rem; }
.sp-book-bonus { margin: 2px 0 0; font-size: .86rem; color: var(--sp-accent); font-weight: 700; }
.sp-book-sub,
.sp-book-title { margin: 0; font-size: .86rem; line-height: 1.55; color: var(--sp-ink-2); }
.sp-book-steps { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.sp-book-steps li { font-size: .85rem; line-height: 1.5; color: var(--sp-ink-2); }
.sp-book-cta { margin-top: auto; }

/* ── Split bloky ──────────────────────────────────────────────────────────── */
.sp-about-split,
.sp-where-split { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.sp-where-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
.sp-facts-panel { align-self: start; }
.sp-band-grid { margin-top: 18px; }
.sp-t-wide { min-width: 640px; }

/* ── Responzivita ─────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .sp-hero-grid,
    .sp-ai-band,
    .sp-about-split,
    .sp-where-split { grid-template-columns: 1fr; }
    .sp-where-split .ed-facts { order: 2; }
}

@media (max-width: 640px) {
    .sp-page .sp-hero        { padding-block: 4px 16px; }
    .sp-page .sp-section     { padding-block: 28px 0; }
    .sp-page .sp-section--tight { padding-block: 16px 0; }
    .sp-page .sp-disclaimer  { padding-block: 28px 40px; }
    .sp-hub-grid, .sp-book-grid, .sp-news-grid, .sp-matchlist { gap: 12px; }
    .sp-hub-card, .sp-book, .sp-news-card { padding: 16px; }
    .sp-report, .sp-ai-form, .sp-ai-card, .sp-ai-band { padding: 16px; }
    .sp-m { grid-template-columns: 46px minmax(0, 1fr) 30px; gap: 8px; padding: 8px 11px; }
    .sp-m-team { font-size: .88rem; }
    .sp-m-time { font-size: .78rem; }
    .sp-league-head { padding: 8px 11px; }
    .sp-board { grid-template-columns: 1fr; }
    .sp-lnav { position: static; }
    .sp-btn { padding: 9px 15px; font-size: .89rem; }
}

@media (prefers-reduced-motion: reduce) {
    .sp-ai-spinner { animation: none; }
}

/* ── Znaky týmů ───────────────────────────────────────────────────────────
   Znak je v řádku funkční prvek: oko ho najde dřív, než přečte název. Aby
   řádky neposkakovaly podle toho, jestli znak máme, má monogramová náhrada
   přesně stejné rozměry. Znaky se servírují z vlastní domény (stahuje je
   cron do assets/images/teams), takže se nemusí povolovat cizí host v CSP. */
.sp-badge-img {
    width: 18px; height: 18px; flex: 0 0 18px;
    object-fit: contain;
    margin-right: 7px;
    vertical-align: -3px;
    display: inline-block;
}
.sp-badge-img--mono {
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--sp-r-xs);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--sp-line);
    color: var(--sp-ink-3);
    font-size: .62rem; font-weight: 700;
    line-height: 1;
}

/* ═══════════════════════════════════════════════════════════════════════════
   NEUTRALIZACE CASINO KOMPONENT UVNITŘ SEKCE
   ---------------------------------------------------------------------------
   Sekce Sport staví na sdílených komponentách webu (.ed-*, internal-links,
   base.css). Ty jsou laděné pro casino část: fialové gradientové povrchy,
   svítivé odznaky kroků a magentové odkazy. Uvnitř sekce je proto srovnáváme
   do stejné ploché řeči jako .sp-* prvky. Scope je vždy .sp-page nebo
   body.sport-mode, takže se casino části webu nic nemění.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Ploché pozadí sekce. Bez tohohle prohrává specificita se shader-bg.css,
   který na body.cyber-body nastavuje transparent, a sekce by seděla na
   casino shader podkladu. */
html[data-shader-bg="on"] body.sport-mode,
html body.sport-mode { background-color: #0b0e14; }

/* Odkaz bez třídy dědil z base.css čistou magentu (#ff00ff). Týkalo se to
   i odkazu na hazardni-hrani.cz v každém disclaimeru. */
.sp-page a:not([class]) {
    color: var(--sp-ink-2);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-page a:not([class]):hover { color: var(--sp-accent); }

/* Jeden povrch pro všechny karty na stránce. .ed-* jely na fialově
   nadechnutém gradientu, .sp-* na plochém povrchu, na jedné stránce to
   vypadalo jako dva různé weby. */
.sp-page .ed-card,
.sp-page .ed-steps--cards li,
.sp-page .ed-list--cards li,
.sp-page .ed-table-wrap,
.sp-page .ed-faq details,
.sp-page .ed-facts,
.sp-page .ed-callout {
    background: var(--sp-surface);
    border-color: var(--sp-line);
    box-shadow: none;
}
.sp-page .ed-card--accent::before { display: none; }
.sp-page .ed-callout { border-left: 2px solid var(--sp-line); }
.sp-page .ed-callout--legal { border-left-color: var(--sp-accent-soft); }

/* Číslované kroky měly svítivý magenta-fialový odznak. Teď je to čitelné
   číslo v akcentu, stejné jako čísla kroků v AI formuláři. */
.sp-page .ed-steps li::before {
    background: var(--sp-accent-bg);
    border: 1px solid var(--sp-accent-soft);
    color: var(--sp-accent);
    border-radius: var(--sp-r-xs);
    font-weight: 700;
    box-shadow: none;
}

/* Ikonový čip měl fialový gradient. */
.sp-page .ed-ico {
    background: var(--sp-surface-2);
    border: 1px solid var(--sp-line);
    color: var(--sp-ink-2);
    border-radius: var(--sp-r-xs);
}

/* Kroky a seznamy držely čtecí šířku 70ch, zatímco FAQ a karty vedle nich
   šly přes celý kontejner. Půl stránky prázdna vypadalo jako rozbitý layout,
   tak kroky roztáhneme a rozložíme do dvou sloupců. */
.sp-page .ed-steps,
.sp-page .ed-list { max-width: none; }
.sp-page .ed-steps--cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 12px;
}
.sp-page .ed-steps--cards li { margin: 0; }

/* Pilulky z editorial vrstvy (rádius 9999px, verzálky) nahrazuje střízlivý
   kicker. Necháváme třídy fungovat, jen je srovnáme do tvaru sekce. */
.sp-page .ed-pill,
.sp-kicker {
    display: inline-block;
    padding: 3px 8px;
    border-radius: var(--sp-r-xs);
    border: 1px solid var(--sp-line);
    background: var(--sp-surface-2);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: none;
    color: var(--sp-ink-3);
}
.sp-report-kicker { color: var(--sp-ink-3); }

/* Blok „Doporučujeme také" je sdílená komponenta z casino části: gradientový
   nadpis, fialový povrch karty a poskočení při hoveru. */
body.sport-mode .il-title span {
    background: none;
    -webkit-text-fill-color: currentColor;
    color: #fff;
}
body.sport-mode .il-card {
    background: #0d1017;
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: none;
}
body.sport-mode .il-card:hover {
    transform: none;
    box-shadow: none;
    border-color: rgba(0, 245, 255, 0.35);
    background: #11151d;
}

/* ── Dvě pasti s atributem hidden ─────────────────────────────────────────
   Autorské `display: block` přebije uživatelské `[hidden] { display: none }`,
   takže bez těchhle dvou řádků nefunguje filtr sportů v AI formuláři
   (položky se skrývají přes element.hidden) a prázdný kontejner výsledku je
   technicky viditelný. Stejná past je v projektu ošetřená u .rtb v shared.css. */
.sp-pick[hidden],
.sp-ai-result[hidden] { display: none; }

/* ── Drobnosti rozvržení ──────────────────────────────────────────────────── */
/* Pět sportů: na širokém monitoru 3 + 2, ne 4 + osiřelá karta. */
@media (min-width: 1200px) {
    .sp-hub-grid { grid-template-columns: repeat(3, 1fr); }
}
/* Archiv zpráv s jedním záznamem nemá roztahovat prázdnou mřížku přes 1400 px. */
.sp-news-grid { max-width: 960px; }

/* Na rozcestníku jsou tlačítka partnerů obrysová: plná azurová plocha přes
   celou šířku karty je nejhlasitější prvek stránky a na přehledu překřičí
   obsah. Plnou variantu si nechává jen srovnávací stránka sázkovek. */
.sp-hub .sp-book-cta {
    background: transparent;
    border-color: var(--sp-accent);
    color: var(--sp-accent);
}
.sp-hub .sp-book-cta:hover { background: var(--sp-accent-bg); color: #fff; }

/* ── PRO tarif ────────────────────────────────────────────────────────────
   Odemyká se za RSP Coins, které jdou jen vydělat. Panel proto vypadá jako
   informace o účtu, ne jako prodejní banner: žádná záře, žádný odpočet,
   žádné sliby o vyšší úspěšnosti. */
.sp-pro {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    padding: 18px 20px;
    border: 1px solid var(--sp-line);
    border-left: 2px solid var(--sp-accent);
    border-radius: var(--sp-r);
    background: var(--sp-surface);
}
.sp-pro[data-pro="1"] { border-left-color: var(--sp-accent); }
.sp-pro h2 { margin: 8px 0 8px; font-size: 1.2rem; font-weight: 800; color: #fff; }
.sp-pro p { margin: 0 0 8px; font-size: .95rem; line-height: 1.6; color: var(--sp-ink-2); max-width: 72ch; }
.sp-pro p strong { color: #fff; }
.sp-pro .sp-meta { margin-top: 4px; }
.sp-pro-buy { display: grid; gap: 8px; justify-items: start; }
.sp-pro-buy .sp-btn { width: auto; }
.sp-pro-balance { margin: 0 0 2px; font-size: .85rem; color: var(--sp-ink-3); }
.sp-pro-balance strong { color: var(--sp-accent); }
.sp-pro-btn[disabled] { opacity: .45; cursor: not-allowed; }

/* Souhlas se zahájením plnění u platby kartou. Bez těchhle řádků sedí systémové
   zaškrtávátko na tmavém panelu jako cizí prvek a text se láme pod něj. Jen
   zarovnání a sladění akcentu, žádná nová dekorace. */
.sp-pro-buy label.sp-ai-legal {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    max-width: 46ch;
    cursor: pointer;
}
.sp-pro-buy label.sp-ai-legal input[type="checkbox"] {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin-top: 2px;
    accent-color: var(--sp-accent);
    cursor: pointer;
}

/* Rozdělení vkladu (PRO) */
.sp-ai-split { margin-bottom: 14px; }
.sp-ai-split ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sp-ai-split li {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px;
    padding: 9px 12px;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r-s);
    background: rgba(255, 255, 255, 0.02);
    font-size: .92rem; color: var(--sp-ink-2);
}
.sp-ai-split li strong { color: var(--sp-accent); font-variant-numeric: tabular-nums; }
.sp-ai-split li span { flex-basis: 100%; font-size: .84rem; color: var(--sp-ink-3); }

.sp-ai-formtag {
    display: inline-block;
    font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    padding: 2px 7px; margin-right: 8px;
    border-radius: var(--sp-r-xs);
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--sp-line);
    color: var(--sp-ink-3);
}

.sp-ai-save { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 12px; }

@media (max-width: 900px) {
    .sp-pro { grid-template-columns: 1fr; }
}

/* Blok soutěže je <section>, takže na něj dopadá globální section{display:flex;
   padding: X 0} z base.css a uvnitř rámečku vznikal prázdný pás. Stejná past
   jako u .sp-hero a spol., proto stejná pojistka. */
.sp-page .sp-league { display: block; padding: 0; }

/* Odkazy v postranním seznamu soutěží a v panelech nejsou „textové odkazy",
   takže je nepodtrháváme jako odkazy v odstavcích. */
.sp-page .sp-lnav a { text-decoration: none; color: var(--sp-ink-2); }
.sp-page .sp-lnav a:hover { color: #fff; }

/* ═══════════════════════════════════════════════════════════════════════════
   HODNOTA SÁZKY (kurzy od uživatele + výsledek výpočtu)

   Design se drží zbytku sekce: ploché povrchy, jeden azurový akcent, žádné
   gradienty ani stíny. Barva tady ale NESE INFORMACI, což je jediné místo
   v sekci, kde je to schválně: zelená znamená kladnou očekávanou hodnotu,
   červená zápornou. Kdyby to bylo jen textem, tabulka by se nedala přelétnout
   očima a přesně to je její smysl.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Zadání kurzů u vybraného zápasu ─────────────────────────────────────── */
.sp-odds {
    margin: 6px 0 0 29px;   /* zarovnáno pod text zápasu, ne pod zaškrtávátko */
    padding: 10px 12px;
    border: 1px solid var(--sp-line-soft);
    border-radius: var(--sp-r-s);
    background: rgba(255, 255, 255, 0.02);
}
.sp-odds[hidden] { display: none; }
.sp-odds-title { margin: 0 0 8px; font-size: .8rem; font-weight: 700; color: var(--sp-ink-2); }
.sp-odds-title small { display: block; margin-top: 2px; font-weight: 500; color: var(--sp-ink-3); line-height: 1.45; }
.sp-odds-row { display: flex; flex-wrap: wrap; gap: 8px; }
.sp-odds-f { display: flex; align-items: center; gap: 6px; }
.sp-odds-f > span {
    font-size: .78rem; font-weight: 700; color: var(--sp-ink-3);
    min-width: 14px; text-align: right;
}
.sp-odds-f--wide > span { min-width: auto; }
.sp-odds-f input {
    width: 72px; padding: 6px 8px;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r-xs);
    background: var(--sp-surface);
    color: #fff; font-size: .86rem;
    font-variant-numeric: tabular-nums;
}
.sp-odds-f input:focus { outline: none; border-color: var(--sp-accent); }
/* Šipky u number inputu jsou tu na obtíž, kurz se píše, ne kliká. */
.sp-odds-f input::-webkit-outer-spin-button,
.sp-odds-f input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.sp-odds-f input[type="number"] { -moz-appearance: textfield; }

.sp-ai-check { display: flex; align-items: flex-start; gap: 9px; margin-top: 12px; cursor: pointer; }
.sp-ai-check input { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 1px; accent-color: #00f5ff; }

/* ── Tabulka hodnoty ─────────────────────────────────────────────────────── */
.sp-val { margin: 10px 0 8px; overflow-x: auto; }
.sp-val-t { width: 100%; border-collapse: collapse; font-size: .86rem; }
.sp-val-t th {
    padding: 6px 8px; text-align: right;
    font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    color: var(--sp-ink-3);
    border-bottom: 1px solid var(--sp-line);
    white-space: nowrap;
}
.sp-val-t th:first-child { text-align: left; }
.sp-val-t td { padding: 7px 8px; border-bottom: 1px solid var(--sp-line-soft); }
.sp-val-name { color: #fff; font-weight: 600; white-space: nowrap; }
.sp-val-n { text-align: right; font-variant-numeric: tabular-nums; color: var(--sp-ink-2); white-space: nowrap; }
.sp-val-ev { font-weight: 700; }
.sp-val-no { color: var(--sp-ink-3); }

/* Barva nese informaci: zelená kladná hodnota, červená záporná, jantarová pochybnost. */
.sp-val-t tr.is-good .sp-val-ev { color: #4ade80; }
.sp-val-t tr.is-bad  .sp-val-ev { color: #f87171; }
.sp-val-t tr.is-warn .sp-val-ev { color: var(--sp-warn); }
.sp-val-t tr.is-best .sp-val-name { color: var(--sp-accent); }

/* Vysvětlující řádek pod každou sázkou. Bez něj by tabulka byla jen čísla. */
.sp-val-note td {
    padding: 0 8px 8px;
    font-size: .79rem; line-height: 1.5;
    color: var(--sp-ink-3);
    border-bottom: 1px solid var(--sp-line);
}
.sp-val-note.is-good td { color: rgba(74, 222, 128, 0.85); }
.sp-val-note.is-bad  td { color: rgba(248, 113, 113, 0.85); }
.sp-val-note.is-warn td { color: rgba(224, 164, 88, 0.9); }
.sp-val-margin { margin: 8px 0 0; font-size: .8rem; line-height: 1.55; color: var(--sp-ink-3); }

/* ── Klíčová čísla, ze kterých odhad vychází ─────────────────────────────── */
.sp-ai-facts { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 4px; }
.sp-ai-facts li {
    position: relative; padding-left: 15px;
    font-size: .85rem; line-height: 1.5; color: var(--sp-ink-2);
}
.sp-ai-facts li::before {
    content: ""; position: absolute; left: 0; top: .55em;
    width: 5px; height: 5px; border-radius: 50%; background: var(--sp-accent);
}
.sp-ai-pick-meta { font-size: .78rem; color: var(--sp-ink-3); margin-right: auto; }
.sp-ai-hint {
    margin: 0 0 14px; padding: 9px 12px;
    border: 1px solid var(--sp-accent-soft);
    border-radius: var(--sp-r-s);
    background: var(--sp-accent-bg);
    font-size: .87rem; line-height: 1.55; color: var(--sp-ink-2);
}

/* ── Kombinace (AKO) ─────────────────────────────────────────────────────── */
.sp-ai-parlay {
    margin-bottom: 14px; padding: 14px;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r-s);
    background: var(--sp-surface-2);
}
.sp-ai-parlay-nums { display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 10px; }
.sp-ai-parlay-nums div { display: grid; gap: 2px; }
.sp-ai-parlay-nums span { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--sp-ink-3); }
.sp-ai-parlay-nums b { font-size: 1.15rem; color: #fff; font-variant-numeric: tabular-nums; }
.sp-ai-parlay-legs { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 4px; }
.sp-ai-parlay-legs li { font-size: .85rem; color: var(--sp-ink-2); }
.sp-ai-parlay-legs strong { color: #fff; }
.sp-ai-parlay-legs span { color: var(--sp-ink-3); font-variant-numeric: tabular-nums; }
.sp-ai-band { margin: 0 0 6px; font-size: .87rem; font-weight: 600; }
.sp-ai-band.is-good { color: #4ade80; }
.sp-ai-band.is-bad  { color: #f87171; }
.sp-ai-band.is-warn { color: var(--sp-warn); }
.sp-ai-band.is-muted{ color: var(--sp-ink-3); }

/* ── Kalibrace odhadů ────────────────────────────────────────────────────── */
.sp-ai-calib {
    margin-top: 14px; padding-top: 14px;
    border-top: 1px solid var(--sp-line);
}
.sp-ai-calib .sp-ai-risks-title small { font-weight: 500; color: var(--sp-ink-3); }
.sp-ai-split .sp-ai-risks-title small { font-weight: 500; color: var(--sp-ink-3); }

@media (max-width: 640px) {
    /* Na úzké obrazovce se pole na kurzy nevejdou vedle sebe. Flexbox by je
       sice zalomil, jenže popisek plus pevná šířka inputu dá dohromady víc,
       než je k dispozici, a poslední pole vyjede z karty ven. Mřížka o třech
       stejných sloupcích to řeší natvrdo: 1, X a 2 vedle sebe, delší trhy
       přes celou šířku. */
    .sp-odds { margin-left: 0; }
    .sp-odds-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
    .sp-odds-f { min-width: 0; }
    .sp-odds-f input { width: 100%; min-width: 0; }
    .sp-odds-f--wide { grid-column: 1 / -1; }
    .sp-odds-f--wide > span { min-width: 74px; text-align: left; }

    .sp-val-t { font-size: .8rem; }
    .sp-ai-parlay-nums { gap: 14px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   DETAIL ZÁPASU (/sport/zapas/...)

   Drží se stejné kázně jako zbytek sekce: ploché povrchy, jeden azurový akcent,
   žádné gradienty ani stíny. Jediná místa, kde barva NESE informaci, jsou forma
   týmu (výhra, remíza, prohra) a poměrový pruh statistik, protože obojí se má
   dát přečíst na první pohled bez čtení čísel.
   ═══════════════════════════════════════════════════════════════════════════ */

.sp-h2 {
    margin: 0 0 12px;
    font-size: 1.05rem; font-weight: 800; color: #fff;
    letter-spacing: -0.01em;
}
.sp-note { margin: 10px 0 0; font-size: .87rem; line-height: 1.6; color: var(--sp-ink-3); }
.sp-note strong { color: var(--sp-ink-2); }

/* ── Hlavička zápasu ─────────────────────────────────────────────────────── */
.sp-mh {
    padding: 18px 20px;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    background: var(--sp-surface);
}
.sp-mh-league { margin: 0 0 14px; font-size: .82rem; color: var(--sp-ink-3); text-align: center; }
.sp-page .sp-mh-league a { color: var(--sp-accent); text-decoration: none; }
.sp-page .sp-mh-league a:hover { text-decoration: underline; }

/* Tři pevné sloupce: skóre zůstává přesně uprostřed bez ohledu na délku jmen.
   Kdyby byl prostřední sloupec pružný, delší název týmu by skóre posunul stranou. */
.sp-mh-grid { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 14px; }
.sp-mh-team { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; min-width: 0; }
.sp-mh-team .sp-badge-img { width: 44px; height: 44px; }
.sp-mh-team h1,
.sp-mh-team h2 { margin: 0; font-size: 1.02rem; font-weight: 700; color: #fff; line-height: 1.3; }

.sp-mh-score { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: center; }
.sp-mh-score b { font-size: 2.4rem; font-weight: 800; color: #fff; line-height: 1; font-variant-numeric: tabular-nums; }
.sp-mh-score > span { font-size: 1.6rem; color: var(--sp-ink-3); }
.sp-mh-score .sp-mh-time { font-size: 1.6rem; }
.sp-mh-score em {
    flex: 1 1 100%; text-align: center; margin-top: 6px;
    font-style: normal; font-size: .76rem; text-transform: uppercase; letter-spacing: .07em;
    color: var(--sp-ink-3);
}
.sp-mh-score.is-live em { color: var(--sp-accent); }

/* ── Průběh zápasu ───────────────────────────────────────────────────────── */
.sp-page .sp-tl {
    list-style: none; margin: 0; padding: 0;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    background: var(--sp-surface);
    overflow: hidden;
}
/* Svislá osa uprostřed: domácí vlevo, hosté vpravo. Stejná logika jako
   u výsledkových serverů, oko pak čte, kdo co udělal, bez čtení jmen. */
.sp-tl-i {
    display: grid; grid-template-columns: 1fr 46px 1fr; align-items: center;
    padding: 7px 12px;
    border-bottom: 1px solid var(--sp-line-soft);
}
.sp-tl-i:last-child { border-bottom: 0; }
.sp-tl-min {
    grid-column: 2; grid-row: 1; text-align: center;
    font-size: .78rem; color: var(--sp-ink-3); font-variant-numeric: tabular-nums;
}
.sp-tl-body { display: flex; align-items: center; gap: 9px; min-width: 0; }
.sp-tl-i.is-home .sp-tl-body { grid-column: 1; grid-row: 1; justify-content: flex-end; text-align: right; flex-direction: row-reverse; }
.sp-tl-i.is-away .sp-tl-body { grid-column: 3; grid-row: 1; }
.sp-tl-ico { display: inline-flex; flex: 0 0 17px; width: 17px; height: 17px; color: var(--sp-ink-3); }
.sp-tl-ico svg { width: 100%; height: 100%; }
.sp-tl-ico.is-gol { color: #fff; }
.sp-tl-ico.is-zluta { color: #eab308; }
.sp-tl-ico.is-cervena { color: #ef4444; }
.sp-tl-ico.is-stridani { color: #4ade80; }
.sp-tl-txt { display: grid; gap: 1px; min-width: 0; }
.sp-tl-txt strong { font-size: .9rem; font-weight: 600; color: #fff; }
.sp-tl-txt small { font-size: .74rem; color: var(--sp-ink-3); }

/* ── Porovnávací statistiky ──────────────────────────────────────────────── */
.sp-stats {
    padding: 14px 16px;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    background: var(--sp-surface);
}
.sp-stats-head {
    display: flex; justify-content: space-between; gap: 12px;
    margin-bottom: 12px; padding-bottom: 10px;
    border-bottom: 1px solid var(--sp-line);
}
.sp-stats-head span { font-size: .88rem; font-weight: 700; color: #fff; display: grid; gap: 1px; }
.sp-stats-head span:last-child { text-align: right; }
.sp-stats-head small { font-weight: 500; font-size: .74rem; color: var(--sp-ink-3); }

.sp-stat { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 10px; margin-bottom: 11px; }
.sp-stat:last-child { margin-bottom: 0; }
.sp-stat-h, .sp-stat-a { font-size: .88rem; font-weight: 700; color: #fff; font-variant-numeric: tabular-nums; }
.sp-stat-a { text-align: right; }
.sp-stat-l { text-align: center; font-size: .8rem; color: var(--sp-ink-3); }
/* Pruh: levá část je podíl domácích, zbytek hostů. Jedna čára řekne víc
   než dvě čísla, proto tu barva výjimečně nese informaci. */
.sp-stat-bar {
    grid-column: 1 / -1;
    display: block; height: 4px; border-radius: 2px;
    background: rgba(255, 255, 255, 0.12);
    overflow: hidden;
}
.sp-stat-bar i { display: block; height: 100%; background: var(--sp-accent); }

/* ── Sestavy ─────────────────────────────────────────────────────────────── */
.sp-lineups { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.sp-lineup {
    padding: 14px 16px;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    background: var(--sp-surface);
}
.sp-lineup-team { margin: 0 0 10px; font-size: .95rem; font-weight: 800; color: #fff; }
.sp-lineup-sub { margin: 12px 0 6px; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sp-ink-3); }
.sp-lineup-sub:first-of-type { margin-top: 0; }
.sp-page .sp-lineup-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; }
.sp-lineup-list li { display: flex; align-items: center; gap: 9px; font-size: .87rem; color: var(--sp-ink-2); }
.sp-lineup-num { flex: 0 0 22px; text-align: right; font-size: .78rem; color: var(--sp-ink-3); font-variant-numeric: tabular-nums; }
.sp-lineup-name { color: #fff; }
.sp-lineup-pos { margin-left: auto; font-size: .72rem; color: var(--sp-ink-3); }

/* ── Forma ───────────────────────────────────────────────────────────────── */
.sp-formrow { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-top: 14px; }
.sp-formbox {
    padding: 14px 16px;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    background: var(--sp-surface);
}
.sp-formbox-team { margin: 0 0 9px; font-size: .92rem; font-weight: 700; color: #fff; }
.sp-form { display: flex; align-items: center; gap: 5px; margin: 0 0 10px; flex-wrap: wrap; }
.sp-form-i {
    display: inline-flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border-radius: var(--sp-r-xs);
    font-size: .74rem; font-weight: 800; color: #0b0e14;
}
.sp-form-i.is-w { background: #4ade80; }
.sp-form-i.is-d { background: rgba(255, 255, 255, 0.42); }
.sp-form-i.is-l { background: #f87171; }
.sp-form small { margin-left: 6px; font-size: .72rem; color: var(--sp-ink-3); }

.sp-page .sp-lastm { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sp-lastm li { display: flex; align-items: center; gap: 9px; font-size: .84rem; color: var(--sp-ink-2); }
.sp-lastm-r {
    flex: 0 0 18px; height: 18px; border-radius: var(--sp-r-xs);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .7rem; font-weight: 800; color: #0b0e14;
}
.sp-lastm-r.is-w { background: #4ade80; }
.sp-lastm-r.is-d { background: rgba(255, 255, 255, 0.42); }
.sp-lastm-r.is-l { background: #f87171; }
.sp-lastm-o { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sp-lastm-s { font-variant-numeric: tabular-nums; color: #fff; font-weight: 600; }
.sp-lastm-w { font-size: .74rem; color: var(--sp-ink-3); }

/* ── Informace o zápase ──────────────────────────────────────────────────── */
.sp-info {
    margin: 0;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    background: var(--sp-surface);
    overflow: hidden;
}
.sp-info > div {
    display: flex; justify-content: space-between; gap: 14px;
    padding: 9px 16px;
    border-bottom: 1px solid var(--sp-line-soft);
}
.sp-info > div:last-child { border-bottom: 0; }
.sp-info dt { margin: 0; font-size: .84rem; color: var(--sp-ink-3); }
.sp-info dd { margin: 0; font-size: .88rem; color: #fff; text-align: right; }

/* ── Sázkovky ────────────────────────────────────────────────────────────── */
.sp-books { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.sp-books .sp-book {
    display: grid; gap: 3px;
    padding: 13px 15px;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r-s);
    background: var(--sp-surface);
    text-decoration: none;
}
.sp-books .sp-book:hover { border-color: var(--sp-accent); background: var(--sp-surface-2); }
.sp-book-name { font-size: .95rem; font-weight: 700; color: #fff; }
.sp-book-bonus { font-size: .82rem; color: var(--sp-accent); }

/* Vzájemné zápasy: seznam bez hlavičky soutěže, protože ta je nad ním. */
.sp-matches--flat {
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-r);
    background: var(--sp-surface);
    overflow: hidden;
}

/* Řádek zápasu v programu vede na detail. Odkaz musí zůstat neviditelný,
   aby výpis pořád vypadal jako tabulka, ne jako seznam odkazů.
   display:contents nechá mřížku řádku beze změny. */
.sp-page .sp-m-link { color: inherit; text-decoration: none; display: contents; }
.sp-page .sp-m-link:hover .sp-m-name { color: var(--sp-accent); }

@media (max-width: 640px) {
    .sp-mh { padding: 14px; }
    .sp-mh-team .sp-badge-img { width: 34px; height: 34px; }
    .sp-mh-team h1, .sp-mh-team h2 { font-size: .9rem; }
    .sp-mh-score b { font-size: 1.9rem; }
    .sp-tl-i { grid-template-columns: 1fr 38px 1fr; padding: 7px 8px; }
    .sp-tl-txt strong { font-size: .84rem; }
    .sp-info > div { padding: 8px 12px; }
}
