/* Шрифт Inter — с нашего сервера, без Google Fonts. Один вариативный файл на все начертания.
   «Inter Fallback» — Arial с подогнанными метриками: пока Inter грузится в первый раз, текст и шапка не прыгают */
@font-face{font-family:Inter;src:url(/static/fonts/Inter-V.ttf?v=1) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Inter Fallback";src:local("Arial"),local("Helvetica");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0%;size-adjust:107.06%}:root{
  --court:#123a73;--court-2:#1c4f96;--ink:#13213a;--muted:#5d6b82;--line:#dfe5ee;--bg:#f2f5f9;--paper:#fff;
  --ball:#d8e84a;--win:#1f7a4d;--loss:#b23b3b;--clay:#b8582a;--grass:#3c7d3a;
  --r:10px;--fs:16px;
}
@media (prefers-color-scheme:dark){:root{--ink:#e7ecf4;--muted:#9aa7bb;--line:#26334a;--bg:#0f1726;--paper:#152036;--court:#0e2c57;--court-2:#2c66b8;--win:#5cc98f;--loss:#ef7b7b}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:var(--fs)/1.55 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
a{color:var(--court-2);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:3px solid var(--ball);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}
h1{font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.2;margin:.6em 0 .3em;letter-spacing:-.01em}
h2{font-size:1.2rem;margin:1.6em 0 .6em}
h3{font-size:1rem;margin:0}
.lead{font-size:1.06rem;color:var(--muted);max-width:72ch;margin:.2em 0 .8em}
.muted{color:var(--muted);font-size:.92rem}
.fresh{font-size:.82rem;color:var(--muted);margin:.2em 0 1em}
.note{background:var(--paper);border-left:4px solid var(--ball);padding:10px 14px;border-radius:6px}
.empty{padding:22px;background:var(--paper);border:1px dashed var(--line);border-radius:var(--r);color:var(--muted)}

/* Шапка: корт */
.top{background:var(--court);color:#fff;border-bottom:3px solid #fff;box-shadow:0 3px 0 var(--court)}
.top-in{display:flex;align-items:center;gap:16px;padding-top:12px;padding-bottom:8px}
.logo{display:flex;align-items:center;gap:8px;color:#fff;font-size:1.25rem;letter-spacing:-.02em}
.logo b{color:var(--ball)}.logo:hover{text-decoration:none}
.search{margin-left:auto;flex:0 1 300px}
.search input{width:100%;border:0;border-radius:20px;padding:8px 14px;font:inherit;font-size:.92rem;background:rgba(255,255,255,.14);color:#fff}
.search input::placeholder{color:rgba(255,255,255,.7)}
.nav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;padding-bottom:6px}
.nav::-webkit-scrollbar{display:none}
.nav a{color:#dbe6f7;padding:7px 9px;border-radius:7px;white-space:nowrap;font-size:.9rem}
.nav a:hover{background:rgba(255,255,255,.1);text-decoration:none}
.nav a[aria-current]{background:#fff;color:var(--court)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ball);margin-right:6px;vertical-align:middle;box-shadow:0 0 0 0 rgba(216,232,74,.7);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(216,232,74,0)}100%{box-shadow:0 0 0 0 rgba(216,232,74,0)}}
@media (prefers-reduced-motion:reduce){.dot{animation:none}}

.crumbs{font-size:.84rem;color:var(--muted);margin-top:14px;display:flex;flex-wrap:wrap;gap:6px}
.crumbs a{color:var(--muted)}

/* Табло матчей */
.tgroup{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);margin:0 0 14px;overflow:hidden}
.th{display:flex;align-items:center;gap:8px;padding:9px 12px;background:linear-gradient(var(--paper),var(--bg));border-bottom:1px solid var(--line);font-size:.95rem}
.th a{color:var(--ink);font-weight:600}
.th small{margin-left:auto;color:var(--muted);font-weight:400}
.th .dbl{font-size:.72rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.pair{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.pair i{font-style:normal;color:var(--muted)}
.pair span.flag{display:none}
.board .pair i{color:#c9d6ec}
.tour{font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--court);color:#fff;letter-spacing:.02em}
.tour.t-wta,.tour.t-w125{background:#7a2e6e}.tour.t-ch{background:#2b6d4f}.tour.t-itfm,.tour.t-itfw{background:#8a5a1c}
.mrow{position:relative;display:grid;grid-template-columns:78px 1fr;align-items:center;border-top:1px solid var(--line);padding:6px 12px}
.tgroup .mrow:first-of-type{border-top:0}
.mrow:hover{background:color-mix(in srgb,var(--court-2) 5%,transparent)}
.m-time{font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums;display:flex;flex-direction:column}
.m-time small{font-size:.72rem}
.live{color:#0b1a33;background:var(--ball);padding:1px 6px;border-radius:4px;font-size:.72rem;width:max-content}
.m-p{display:flex;align-items:center;gap:6px;min-height:26px}
.m-p .pn{color:var(--ink);position:relative;z-index:2}
.m-p.won .pn{font-weight:700}
.m-p.lost .pn{color:var(--muted)}
.rk{color:var(--muted);font-size:.72rem}
.flag{width:20px;height:15px;display:inline-block;vertical-align:-2px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.08);flex:none}
.sets{margin-left:auto;display:flex;gap:4px;font-variant-numeric:tabular-nums}
.g{min-width:22px;text-align:center;font-weight:500;color:var(--muted)}
.g.w{color:var(--ink);font-weight:700}
.g sup{font-size:.6rem}
.is-live .g:last-child{background:var(--ball);color:#0b1a33;border-radius:4px}
.prob{font-size:.8rem;color:var(--muted);min-width:38px;text-align:right}
.m-link{position:absolute;inset:0;z-index:1}

/* Колонки главной */
.cols{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px}
@media (max-width:900px){.cols{grid-template-columns:1fr}}
.box{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 16px}
.box h2{margin:.2em 0 .6em;font-size:1.05rem}
.rbox{list-style:none;padding:0;margin:0}
.rbox li{display:flex;gap:6px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line);font-size:.94rem}
.rbox li:last-child{border:0}
.rbox .n{width:24px;color:var(--muted);font-variant-numeric:tabular-nums}
.rbox small{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}
.tlist{list-style:none;padding:0;margin:0}.tlist li{display:flex;gap:8px;align-items:center;padding:4px 0}
.acc .big{font-size:2.4rem;font-weight:800;margin:0;color:var(--court-2);font-variant-numeric:tabular-nums}
.more{display:inline-block;font-size:.92rem;font-weight:600;margin-right:14px}
.hero{padding:6px 0 4px}

/* Прогнозы */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.pcard{display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px;color:var(--ink)}
.pcard:hover{border-color:var(--court-2);text-decoration:none}
.pc-t{font-size:.8rem;color:var(--muted)}
.pc-row{display:flex;justify-content:space-between;gap:8px;font-size:.95rem}
.bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--court-2)}

/* Страница матча */
.kicker{font-size:.9rem;color:var(--muted);margin:14px 0 0}
.board{background:var(--court);color:#fff;border-radius:14px;padding:14px 18px;margin:12px 0 18px;border:2px solid #fff;outline:2px solid var(--court)}
.board a{color:#fff}
.board-meta{display:flex;justify-content:space-between;font-size:.86rem;color:#c9d6ec;margin-bottom:8px}
.board-p{display:flex;align-items:center;gap:8px;font-size:1.15rem;padding:6px 0;border-top:1px solid rgba(255,255,255,.18)}
.board-p.won .pn{font-weight:700}
.board .rk{color:#c9d6ec}
.board .g{color:#c9d6ec;font-size:1.25rem;min-width:30px}
.board .g.w{color:#fff}
.board .court{font-size:.8rem;color:#c9d6ec;margin:6px 0 0}
.prob-box{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.prob-box h2{margin:.1em 0 .6em;font-size:1.05rem}
.pbar{display:flex;border-radius:8px;overflow:hidden;font-size:.86rem;font-weight:600;color:#fff}
.pbar span{padding:8px 10px;white-space:nowrap;overflow:hidden;min-width:0}
.pbar span:first-child{background:var(--court-2)}.pbar span:last-child{background:#6b7a93;text-align:right}
.text p{max-width:75ch}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:760px){.two{grid-template-columns:1fr}}
.form{list-style:none;padding:0;margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.form li{display:flex;gap:8px;align-items:center;padding:6px 10px;border-top:1px solid var(--line);font-size:.93rem;flex-wrap:wrap}
.form li:first-child{border:0}
.res{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:5px;font-size:.75rem;font-weight:700;color:#fff}
.res.w{background:var(--win)}.res.l{background:var(--loss)}
.form .sc{margin-left:auto;font-variant-numeric:tabular-nums}
.form small{color:var(--muted);width:100%;padding-left:30px;margin-top:-4px}

/* Таблицы */
.tbl{width:100%;border-collapse:separate;border-spacing:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:.94rem}
/* На узких экранах таблица прокручивается по горизонтали; шапка и строки остаются одной таблицей */
@media (max-width:760px){.tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.tbl th,.tbl td{white-space:nowrap}}

.tbl th,.tbl td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;font-variant-numeric:tabular-nums}
.tbl thead th{font-size:.8rem;color:var(--muted);font-weight:600;background:var(--bg)}
.tbl tr:last-child td,.tbl tr:last-child th{border-bottom:0}
.cmp td{width:35%}
.up{color:var(--win);font-size:.8rem}.down{color:var(--loss);font-size:.8rem}
.ok{color:var(--win);font-weight:600}.no{color:var(--loss);font-weight:600}
.rank .cn{color:var(--muted);font-size:.86rem;margin-left:8px}
@media (max-width:600px){.rank .cn{display:none}}

/* Игрок */
.phead{display:flex;gap:16px;align-items:center;margin-top:12px}
.phead h1{margin:0}
.avatar{width:64px;height:64px;border-radius:50%;background:var(--court);color:var(--ball);display:grid;place-items:center;font-size:1.8rem;font-weight:800;flex:none;border:3px solid var(--ball)}
.latin{margin:0;color:var(--muted)}
.pmeta{margin:.2em 0 0;display:flex;gap:6px;align-items:center}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:18px 0}
.facts div{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:8px 12px}
.facts dt{font-size:.78rem;color:var(--muted)}.facts dd{margin:0;font-weight:600}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips a{background:var(--paper);border:1px solid var(--line);padding:5px 11px;border-radius:16px;font-size:.9rem;color:var(--ink)}
.chips a:hover{border-color:var(--court-2);text-decoration:none}
.chips small{color:var(--muted)}
.h2h-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;background:var(--court);color:#fff;border-radius:14px;padding:18px;margin:14px 0;text-align:center}
.h2h-score a{color:#fff;font-weight:600}.h2h-score b{font-size:2.2rem;font-variant-numeric:tabular-nums;color:var(--ball)}

.daynav{display:flex;gap:6px;overflow-x:auto;margin:10px 0}
.daynav a{display:flex;flex-direction:column;align-items:center;min-width:52px;padding:6px 8px;border-radius:8px;background:var(--paper);border:1px solid var(--line);color:var(--ink);font-weight:700}
.daynav a small{font-weight:400;color:var(--muted);font-size:.72rem}
.daynav a[aria-current]{background:var(--court);color:#fff;border-color:var(--court)}
.daynav a[aria-current] small{color:#c9d6ec}
.months a{min-width:auto;font-weight:500}
.tabs{display:flex;gap:6px;margin:10px 0}
.tabs a{padding:6px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.tabs a[aria-current]{background:var(--court);color:#fff}

.hub{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.hub a{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;color:var(--ink);display:flex;flex-direction:column;gap:4px}
.hub a:hover{border-color:var(--court-2);text-decoration:none}
.hub span{color:var(--muted);font-size:.9rem}
.plist{columns:3 240px;list-style:none;padding:0}
.plist li{break-inside:avoid;padding:3px 0}
.plist small{color:var(--muted);margin-left:6px}
.pager{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0}
.pager a,.pager span{padding:5px 11px;border-radius:7px;border:1px solid var(--line);background:var(--paper)}
.pager span[aria-current]{background:var(--court);color:#fff}

.newslist{list-style:none;padding:0;margin:0}
.newslist li{display:flex;gap:10px;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line)}
.newslist small{color:var(--muted);white-space:nowrap}
.newsgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.ncard a{display:block;height:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px;color:var(--ink)}
.ncard a:hover{border-color:var(--court-2);text-decoration:none}
.ncard h2{font-size:1.05rem;margin:0 0 6px}
.ncard p{margin:0 0 8px;color:var(--muted);font-size:.93rem}
.ncard time{font-size:.8rem;color:var(--muted)}
.ncard.final a{border-top:4px solid var(--ball)}.ncard.upset a{border-top:4px solid var(--loss)}
.newsitem p,.guide p{max-width:72ch}
.guide{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:6px 22px 16px;margin-top:14px}

.faq details{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;margin-bottom:8px}
.faq summary{cursor:pointer;font-weight:600}
.seo{color:var(--muted);max-width:80ch}
.bigsearch{display:flex;gap:8px;margin:12px 0}
.bigsearch input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--paper);color:var(--ink)}
.bigsearch button{padding:10px 18px;border:0;border-radius:8px;background:var(--court);color:#fff;font:inherit;font-weight:600;cursor:pointer}

.foot{margin-top:50px;background:var(--court);color:#c9d6ec;padding:28px 0;border-top:3px solid #fff;box-shadow:0 -3px 0 var(--court)}
.foot-in{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:20px;font-size:.9rem}
.foot a{display:block;color:#fff;padding:2px 0}
.foot .fh{color:var(--ball);font-weight:700;margin:0 0 6px}
.foot .logo-s{color:#fff;font-weight:800;font-size:1.1rem;margin:0 0 6px}
.foot .muted{color:#9fb2d1}
@media (max-width:760px){.foot-in{grid-template-columns:1fr 1fr}.foot-in>div:first-child{grid-column:1/-1}.search{display:none}}
.flash{animation:flash 1.2s}
@keyframes flash{0%{background:color-mix(in srgb,var(--ball) 60%,transparent)}}
@media (max-width:480px){.mrow{grid-template-columns:60px 1fr;padding:6px 10px}.m-time{font-size:.74rem}}
.code{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px;overflow-x:auto;font-size:.85rem}
.chart{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;color:var(--court-2)}
.chart svg{width:100%;height:160px;max-width:640px;display:block}.chart figcaption{color:var(--muted);font-size:.88rem}
.chips a[aria-current]{background:var(--court);color:#fff}
.cal{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:10px 0 0;font-size:.9rem}
.cal a{background:var(--ball);color:#0b1a33;font-weight:700;padding:6px 12px;border-radius:7px}
.cal a:hover{text-decoration:none;filter:brightness(1.05)}.cal .localtime{color:#c9d6ec}

/* Энциклопедия */
.wiki{position:relative}
.wiki h1{margin-top:14px}
.lead-wiki{font-size:1.04rem;max-width:72ch}
.infobox{float:right;width:320px;margin:14px 0 16px 22px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;font-size:.9rem}
.infobox .ib-title{font-weight:800;font-size:1.05rem;text-align:center;margin:0}
.infobox .ib-sub{color:var(--muted);text-align:center;margin:0 0 8px}
.infobox table{width:100%;border-collapse:collapse}
.infobox th{text-align:left;color:var(--muted);font-weight:500;padding:5px 8px 5px 0;vertical-align:top;width:42%}
.infobox td{padding:5px 0;border-bottom:1px solid var(--line)}
.infobox tr:last-child td{border:0}
.avatar.big{width:96px;height:96px;font-size:2.6rem;margin:6px auto 10px}
.toc{display:inline-block;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:8px 18px 8px 14px;margin:6px 0 10px}
.toc p{margin:0 0 4px;font-weight:700}.toc ol{margin:0;padding-left:26px;columns:2 230px;column-gap:44px}
.wiki section{clear:none}
.wiki section h2{border-bottom:1px solid var(--line);padding-bottom:4px}
.sources ol{font-size:.9rem;color:var(--muted)}
.letters{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 14px}
.letters a{min-width:32px;text-align:center;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}
.letters a[aria-current]{background:var(--court);color:#fff}
.glossary dt{font-weight:700;margin-top:12px}.glossary dd{margin:2px 0 0 0;color:var(--ink);max-width:75ch}
.factors{margin-top:10px}
@media (max-width:800px){.infobox{float:none;width:auto;margin:12px 0}}
.factors th:first-child,.factors tbody th{width:30%}.factors td{width:auto}
.ph{border-radius:50%;object-fit:cover;object-position:50% 20%;flex:none;vertical-align:middle;background:var(--line)}
.ph-i{display:inline-grid;place-items:center;background:var(--court);color:var(--ball);font-weight:800}
.rbox .ph,.tbl .ph{margin-right:6px}
.ib-photo{display:block;margin:6px auto 4px;max-width:100%;height:auto;border-radius:8px}
.ib-credit{font-size:.72rem;color:var(--muted);text-align:center;margin:0 0 8px}
.ib-credit a{color:var(--muted)}
.bio-list{margin:0;padding-left:20px}
.ncat{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--court-2);margin-bottom:4px}
.wrap-tabs{flex-wrap:wrap}

/* ---------- Турнирная сетка ---------- */
.bk-scroll{overflow-x:auto;margin:10px -16px 18px;padding:4px 16px 12px;-webkit-overflow-scrolling:touch}
.bk{display:grid;column-gap:18px;align-items:stretch;min-width:max-content}
.bk-h{font-size:.8rem;font-weight:600;color:var(--muted);text-align:center;padding:4px 0 8px;position:sticky;top:0}
.bk-c{display:flex;align-items:center;position:relative;min-width:0}
.bk-m{display:block;width:100%;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:3px 7px;font-size:.82rem;line-height:1.35;color:var(--ink);position:relative}
a.bk-m:hover{border-color:var(--court-2);text-decoration:none}
.bk-m.is-live{border-color:#d8e84a;box-shadow:0 0 0 1px #d8e84a}
.bk-p{display:flex;align-items:center;justify-content:space-between;gap:6px;color:var(--muted)}
.bk-p.w{color:var(--ink);font-weight:700}
.bk-n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.bk-s{display:flex;gap:5px;flex:none;font-variant-numeric:tabular-nums}
.bk-s b{font-weight:inherit;min-width:.7em;text-align:center}
.bk-x{display:block;font-size:.72rem;color:var(--muted);text-align:right}
.bk-c.bye .bk-m{background:transparent;border-style:dashed;display:flex;justify-content:space-between;align-items:center;gap:6px}
.bk-c.bye .bk-p{color:var(--ink)}
.bk-c.out .bk-m::after{content:"";position:absolute;left:100%;top:50%;width:9px;border-top:1px solid var(--line);margin-left:1px}
.bk-c.fed::before{content:"";position:absolute;left:-9px;top:25%;bottom:25%;border-left:1px solid var(--line)}
.bk-c.fed::after{content:"";position:absolute;left:-9px;top:50%;width:9px;border-top:1px solid var(--line)}
.jump{margin:10px 0 4px}
/* ---------- Где смотреть ---------- */
.watch{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:18px 0}
.watch h2{margin:.1em 0 .5em;font-size:1.05rem}
.watch p{max-width:75ch;margin:.4em 0}
/* ---------- Большой шлем ---------- */
.slam-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:14px 0}
.slam-facts div{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:9px 12px}
.slam-facts small{display:block;color:var(--muted);font-size:.78rem}
.slam-facts b{font-size:.98rem}
.tbl tr.cutline td{border-bottom:2px solid var(--court-2)}

/* ---------- Коэффициенты PARI ---------- */
:root{--odd-bg:#eef3fb;--odd-ink:#123a73;--odd-line:#cbd8ee;--odd-up:#1a8a52;--odd-down:#d0402f}
@media (prefers-color-scheme:dark){:root{--odd-bg:#1d2d4b;--odd-ink:#e7ecf4;--odd-line:#33507f;--odd-up:#5cd393;--odd-down:#ff8a7a}}
.ad-mark{font-size:.68rem;font-weight:500;color:var(--muted);letter-spacing:.01em;white-space:nowrap}

/* Кнопка-коэффициент в строке: метка исхода слева, коэффициент справа, при наведении — жёлтая «ставка» */
.odd{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:4px;
  height:26px;padding:0 8px;border:1px solid var(--odd-line);border-radius:8px;background:var(--odd-bg);
  color:var(--odd-ink);font-size:.86rem;line-height:1;font-variant-numeric:tabular-nums;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.odd b{font-weight:600;letter-spacing:.01em}
.odd-l{font-size:.66rem;font-weight:500;opacity:.6;letter-spacing:.02em}
.odd:hover,.odd:focus-visible{background:var(--ball);border-color:#b9c92f;color:#0b1a33;text-decoration:none;box-shadow:0 2px 10px rgba(185,201,47,.45)}
.odd:hover .odd-l{opacity:.8}
.odd:active{filter:brightness(.94)}
.odd-dir{font-style:normal;font-size:.58rem;line-height:1;margin-left:2px}
.odd-up b,.odd-up .odd-dir{color:var(--odd-up)}.odd-down b,.odd-down .odd-dir{color:var(--odd-down)}
.odd:hover b,.odd:hover .odd-dir{color:inherit}
.odd-flash{animation:oddflash 1.6s ease-out}
@keyframes oddflash{0%{box-shadow:0 0 0 3px var(--ball)}100%{box-shadow:0 0 0 0 transparent}}

/* Коэффициент в строке игрока — перед счётом. Счёт всегда у правого края;
   в группах с коэффициентами под счёт резервируется одинаковая ширина, чтобы кнопки стояли ровным столбцом */
.m-p .odd{margin-left:auto;flex:none;width:78px;height:24px}
.m-p .odd+.sets{margin-left:4px}
.m-p .odd+.sets .prob{min-width:32px}

@media (max-width:480px){
  .m-p .odd{width:50px;padding:0 5px;justify-content:center}.m-p .odd-l{display:none}
  .m-p .odd+.sets{margin-left:6px}

}
/* Блок на странице матча */
.odds-box{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px 16px 12px;margin:0 0 18px}
.odds-box.is-live{border-color:color-mix(in srgb,var(--ball) 70%,var(--line))}
.odds-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.odds-head h2{margin:0;font-size:1.05rem}
.odds-head .ad-mark{margin-left:auto}
.odds-live{display:inline-flex;align-items:center;font-size:.74rem;font-weight:600;color:#0b1a33;background:var(--ball);padding:3px 9px;border-radius:999px}
.odds-live .dot{background:#0b1a33;width:6px;height:6px}
.odds-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.odd-big{height:auto;display:grid;grid-template-columns:1fr auto;grid-template-areas:"who k" "cta k";align-items:center;justify-items:start;
  gap:10px 14px;padding:14px 16px;border:0;border-radius:12px;text-align:left;font-size:.95rem;
  background:linear-gradient(135deg,var(--court) 0%,#1d5aa8 100%);color:#fff;box-shadow:0 6px 18px rgba(18,58,115,.22)}
.odd-big:hover,.odd-big:focus-visible{background:linear-gradient(135deg,#0f3266 0%,#2466bd 100%);color:#fff;border:0;box-shadow:0 0 0 3px var(--ball),0 8px 22px rgba(18,58,115,.3)}
.ob-who{grid-area:who;display:flex;align-items:center;gap:7px;font-weight:500;min-width:0}.ob-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ob-who .odd-l{font-size:.68rem;background:rgba(255,255,255,.16);border-radius:5px;padding:2px 6px;opacity:1}
.ob-k{grid-area:k;display:flex;align-items:center;gap:5px}
.ob-k b{font-size:1.9rem;font-weight:600;line-height:1;color:var(--ball);letter-spacing:-.01em}
.odd-big .odd-dir{font-size:.8rem}
.odd-big.odd-up .ob-k b,.odd-big.odd-down .ob-k b,.odd-big:hover .ob-k b{color:var(--ball)}
.odd-big.odd-up .odd-dir{color:#7ee2a8}.odd-big.odd-down .odd-dir{color:#ff9f93}
.ob-cta{grid-area:cta;display:inline-flex;align-items:center;gap:5px;font-size:.8rem;font-weight:500;color:#0b1a33;background:var(--ball);padding:5px 11px;border-radius:999px;transition:background .15s}
.odd-big:hover .ob-cta{background:#fff}
.odds-sum{margin:12px 0 4px;font-size:.92rem}
.odds-more{display:inline-flex;align-items:center;gap:6px;margin:6px 0 2px;font-weight:500;font-size:.9rem;position:relative;z-index:2;padding:7px 12px;border:1px solid var(--odd-line);border-radius:9px;background:var(--odd-bg);color:var(--odd-ink)}
.odds-more:hover{background:var(--ball);border-color:#b9c92f;color:#0b1a33;text-decoration:none}
.odds-note{margin:8px 0 0;font-size:.76rem;color:var(--muted)}
@media (max-width:520px){.odds-grid{grid-template-columns:1fr}.ob-k b{font-size:1.7rem}.odds-more{display:flex}}
@media (prefers-reduced-motion:reduce){.odd{transition:none}.odd-flash{animation:none}}
/* Кнопка «Ставки» для матчей без коэффициента на победу — на всю высоту строки */
.odd-bet{height:100%;min-height:56px;flex-direction:column;justify-content:center;gap:3px;text-align:center;font-size:.74rem;font-weight:500;line-height:1.15}
.odd-bet.is-live{border-color:color-mix(in srgb,var(--ball) 75%,var(--odd-line));background:color-mix(in srgb,var(--ball) 18%,var(--odd-bg))}
.odd-ic{flex:none}
.odds-more-main{background:var(--ball);border-color:#b9c92f;color:#0b1a33;padding:10px 16px;font-size:.95rem}
.odds-more-main:hover{filter:brightness(1.05)}
.cal:empty{display:none}

/* Коэффициенты в карточках прогнозов */
.pcard{position:relative}
.pc-link{position:absolute;inset:0;z-index:1;border-radius:inherit}
.pcard:hover{border-color:var(--court-2)}
.pc-odds{position:relative;z-index:2;display:flex;gap:6px;margin-top:4px}
.pc-odds .odd{flex:1}
.odd-bet-inline{justify-content:center;gap:6px;font-size:.8rem;font-weight:500}
/* Коэффициенты в турнирной сетке */
.bk-link{position:absolute;inset:0;z-index:1;border-radius:inherit}
.bk-m:hover{border-color:var(--court-2)}
.bk-odds{position:relative;z-index:2;display:flex;gap:4px;margin-top:4px}
.bk-odds .odd{flex:1;height:20px;padding:0 5px;font-size:.72rem;justify-content:center;border-radius:6px}
/* ---------- Полировка 3.6 ---------- */
body{font-family:Inter,"Inter Fallback",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
h1{font-weight:700;letter-spacing:-.02em}
h2{font-weight:700;font-size:1.22rem}
.top{position:sticky;top:0;z-index:50;box-shadow:0 2px 0 var(--court),0 6px 18px rgba(10,30,60,.18)}
.top-in{padding-top:10px;padding-bottom:6px}
.nav a{font-weight:500}
.th a{font-weight:600}
.m-p .pn{font-weight:500}
.m-p.won .pn{font-weight:700}
.more{padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--court-2);font-weight:500;margin:4px 8px 4px 0}
.more:hover{border-color:var(--court-2);text-decoration:none;background:color-mix(in srgb,var(--court-2) 6%,var(--paper))}
.live{font-weight:700;letter-spacing:.03em}
.ph-sil{object-fit:cover;object-position:50% 30%;background:#f4f5f7}
.ib-photo.ph-sil-big{width:200px;height:200px;object-fit:cover;object-position:50% 20%;border-radius:50%;background:#f4f5f7}
.latin-names{margin:-.1em 0 .4em;color:var(--muted);font-size:.92rem}
main h2{letter-spacing:-.005em}
.tgroup,.box,.prob-box,.odds-box,.watch,.form,.tbl,.faq details{box-shadow:0 1px 2px rgba(16,32,64,.05)}
.th{font-size:.92rem}
.mrow{min-height:62px}
.mrow.is-live{box-shadow:inset 3px 0 0 var(--ball)}
.m-players{min-width:0}
.m-p{min-width:0}
.m-p .pn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.m-p .flag,.m-p .rk{flex:none}
.g{font-size:.98rem}
.is-live .g:last-child{padding:0 2px}
/* Табло матча */
.board{background:linear-gradient(135deg,var(--court) 0%,#174a8c 100%);box-shadow:0 8px 24px rgba(18,58,115,.18)}
.board-p{font-size:1.2rem;padding:9px 0}
.board-p .pn{font-weight:600}
.board .g{font-size:1.5rem;font-weight:700}
.board.is-live .g:last-child{background:var(--ball);color:#0b1a33;border-radius:6px}
.board .ph{border:2px solid rgba(255,255,255,.35)}
/* Шапка матча: игрок — время/счёт — игрок. Чистая карточка без двойной рамки */
.board.has-hero{border:0;outline:0;border-radius:16px;padding:14px 22px 18px;background:radial-gradient(120% 140% at 50% 0%,#1d56a3 0%,var(--court) 60%);box-shadow:0 10px 30px rgba(18,58,115,.22)}
.board.has-hero .board-meta{margin-bottom:4px}
.board.has-hero .board-p,.board.has-hero .court{display:none}
.bm-court{color:#9fb2d1}
.bh{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;padding:8px 0 2px}
.bh-p{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:#fff;min-width:0}
.board a.bh-p:hover{text-decoration:none}.board a.bh-p:hover .bh-n{text-decoration:underline}
.board .bh-ph{width:68px;height:68px;border:2px solid rgba(255,255,255,.35);box-shadow:0 4px 14px rgba(0,0,0,.22)}
.bh-n{font-weight:600;font-size:1.08rem;line-height:1.25;overflow-wrap:anywhere}
.bh-r{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#b9c8e2;min-height:16px}
.bh-c{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:150px}
.bh-time,.bh-score{font-size:2.6rem;font-weight:700;line-height:1;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.bh-score i{font-style:normal;margin:0 .2em;opacity:.5;font-weight:500}
.board.is-live .bh-score{color:var(--ball)}
.bh-st{font-size:.74rem;color:#b9c8e2;text-transform:uppercase;letter-spacing:.06em}
.bh-sets{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.bh-sets:empty{display:none}
.bs{font-size:.85rem;font-weight:500;color:#dbe6f7;background:rgba(255,255,255,.1);border-radius:6px;padding:2px 8px;font-variant-numeric:tabular-nums}
.bs sup{font-size:.6rem;opacity:.8}
.bs.cur{background:var(--ball);color:#0b1a33}
@media (max-width:600px){
  .board.has-hero{padding:12px 12px 14px}
  .bh{gap:8px}.board .bh-ph{width:52px;height:52px}.bh-n{font-size:.92rem}
  .bh-c{min-width:92px}.bh-time,.bh-score{font-size:2rem}
  .bs{font-size:.78rem;padding:1px 6px}
  .bm-court{display:none}
}.rbox small{white-space:nowrap;padding-left:6px}
.rbox a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Блок «Россияне сегодня» в боковой колонке главной */
.rus-box h2 small{font-size:.8rem;font-weight:600;color:var(--muted);background:var(--bg);border-radius:999px;padding:1px 8px;margin-left:6px;vertical-align:middle}
.rus-list{margin:0 -16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rus-list .mrow{grid-template-columns:50px minmax(0,1fr);padding:6px 16px;min-height:54px;border-top:1px solid var(--line)}
.rus-list .mrow:first-child{border-top:0}
.rus-list .m-time{font-size:.74rem}
.rus-list .m-p{font-size:.88rem;min-height:22px}
.rus-list .rk{display:none}
.rus-list .m-p .odd{width:62px;height:22px;font-size:.78rem}
.rus-list .m-p .odd-l{display:none}
.rus-list .g{min-width:16px;font-size:.88rem}

/* Единый вертикальный ритм: блоки через 36px, заголовок блока прижат к его верху,
   ряд кнопок «Все матчи…» — 12px под списком. Колонки главной выровнены по верху */
/* Заголовок прижат к верху только у блоков верхнего уровня (у них свой отступ 36px). Во вложенных блоках (страница матча, игрока и т.п.) — обычный отступ сверху, чтобы заголовок не налезал на кнопку предыдущего блока */
main>section>h2:first-child,.col-main>section>h2:first-child,.col-side .box>h2:first-child{margin-top:0}
article section+section:not([class])>h2:first-child{margin-top:1.8em}
main>section,main>.cols,.col-main>section{margin-top:36px}
main>.hero+section{margin-top:22px}
.col-main>section:first-child{margin-top:0}
.col-side>.box:first-child{margin-top:0}
main p:has(>.more:first-child){margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px}
main p:has(>.more:first-child) .more{margin:0}
/* Первый блок страницы — без отступа сверху (на главной был лишний разрыв под шапкой) */
main>section:first-child,main>.hero{margin-top:0}
.hero h1{margin-top:22px}
/* Боковые блоки главной: кнопка внизу на одинаковом расстоянии в каждом блоке */
.col-side .box{padding:14px 16px 16px}
.col-side .box>:last-child{margin-bottom:0}
.col-side .box p.box-more{display:block;margin:14px 0 0}
.col-side .box p.box-more .more{margin:0}
/* Стрелка изменения коэффициента — слева от цифры: «П1   ▲ 3.85» */
.odd .odd-l{order:0}
.odd .odd-dir{order:1;margin:0 3px 0 auto}
.odd b{order:2}
.odd-bet .odd-dir,.ob-k .odd-dir{margin:0}
.ob-k .odd-dir{order:-1;margin-right:4px}
/* Полоска прогноза: синим — только фаворит (у кого процент выше), второй — серым */
.pbar span:first-child,.pbar span:last-child{background:#8a97ab}
.pbar span.fav{background:var(--court-2)}
.bh-live{color:var(--ball)!important;letter-spacing:.02em}
.bh-nr{font-size:.76rem;opacity:.85}
/* Турнирная сетка на телефоне: выход за поля ровно на ширину отступа страницы (12px), без прокрутки вбок */
@media (max-width:600px){.bk-scroll{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}}
/* Кнопка коэффициента вмещает «П1 10.00 ▼» */
.m-p .odd{width:94px}
@media (max-width:480px){.m-p .odd{width:56px}.m-p .odd .odd-dir{display:none}}
/* «Россияне сегодня»: кнопки как везде — П1/П2 и коэффициент; стрелок нет (узко), поэтому и цвет роста/падения не показываем */
.rus-list .m-p .odd{width:80px;padding:0 7px}
.rus-list .m-p .odd .odd-l{display:inline}
.rus-list .m-p .odd .odd-dir{display:none}
.rus-list .odd-up b,.rus-list .odd-down b{color:inherit}
@media (max-width:480px){.m-p .odd-up b,.m-p .odd-down b{color:inherit}}
/* Быстрые фильтры списка матчей */
.mfilter{position:sticky;top:var(--hdr,104px);z-index:20;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:6px 0 12px;padding:8px 0;background:var(--bg)}
.mfilter::-webkit-scrollbar{display:none}
.mfilter button{flex:none;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:.88rem;font-weight:500;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 13px;cursor:pointer}
.mfilter button small{font-size:.74rem;color:var(--muted)}
.mfilter button:hover{border-color:var(--court-2)}
.mfilter button[aria-pressed="true"]{background:var(--court);border-color:var(--court);color:#fff}
.mfilter button[aria-pressed="true"] small{color:#c9d6ec}
.mfilter .dot{margin-right:0}
.mrow[hidden],.tgroup[hidden]{display:none}
@media (max-width:760px){.mfilter{top:var(--hdr,96px);margin-left:-12px;margin-right:-12px;padding:8px 12px}}
/* Ритм главной: первый блок сразу под заголовком, без лишнего разрыва */
.hero{padding:4px 0 0}
.hero .fresh{margin-bottom:0}
.hero+section>h2{margin-top:.9em}
/* Колонка времени/статуса уже — имена ближе к LIVE и времени */
.mrow{grid-template-columns:64px minmax(0,1fr);column-gap:8px}
.m-time{font-size:.78rem}
@media (max-width:480px){.mrow{grid-template-columns:52px minmax(0,1fr);column-gap:6px}.m-time{font-size:.72rem}}/* Единая ячейка игрока во всех таблицах */
.pcell{display:inline-flex;align-items:center;gap:8px;vertical-align:middle;min-width:0}
.pcell .pc-ph{width:28px;height:28px;margin:0}
.pcell .pc-n{font-weight:500;color:var(--court-2);font-size:.95rem;white-space:nowrap}
.pcell .flag{margin:0}
.tbl td{vertical-align:middle}
.search-btn{display:none;margin-left:auto;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;place-items:center}
.search-btn:hover{background:rgba(255,255,255,.24)}
@media (max-width:760px){.search-btn{display:grid}}
/* Страница никогда не прокручивается вбок (clip не ломает закреплённую шапку) */
body{overflow-x:clip}
.pc-row>span{display:flex;align-items:center;gap:6px;min-width:0}
/* Вкладки и рубрики на телефоне — одна прокручиваемая строка, как в приложениях */
@media (max-width:600px){
  .tabs,.wrap-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-left:-12px;margin-right:-12px;padding:0 12px 2px}
  .tabs::-webkit-scrollbar{display:none}
  .tabs a{white-space:nowrap;flex:none}
}
/* Страница игрока на телефоне: имя, описание и ближайшие матчи — выше карточки с фото */
@media (max-width:800px){
  .wiki.player{display:flex;flex-direction:column}
  .wiki.player>*{order:3}
  .wiki.player>h1{order:0;margin-top:10px}
  .wiki.player>.lead-wiki{order:1}
  .wiki.player>.p-next{order:2}
  .wiki.player .ib-photo:not(.ph-sil-big){max-height:300px;width:auto;margin:6px auto 4px;object-fit:cover}
}
.p-next h2{margin-top:1em}
/* Прогноз */
.pbar{height:36px;align-items:stretch}
.pbar span{display:flex;align-items:center}
.pbar span:last-child{justify-content:flex-end}
/* Вопросы и ответы */
.faq details{transition:border-color .15s}
.faq details[open]{border-color:var(--court-2)}
.faq summary{list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:700;color:var(--court-2);flex:none}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:.5em 0 .1em;max-width:75ch}
/* Мобильная версия */
@media (max-width:600px){
  .wrap{padding:0 12px}
  h1{font-size:1.4rem}
  .board{padding:12px 14px;border-radius:12px}
  .board-p{font-size:1.02rem;gap:6px}
  .board .g{font-size:1.25rem;min-width:24px}
  .board-meta{flex-wrap:wrap;gap:4px}
  .mrow{min-height:56px}
  .m-p{font-size:.95rem}
  .rk{display:none}
  .tbl{font-size:.88rem}
}
/* ---------- Блок «Прогноз» на странице матча ---------- */
.tip{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:0 0 18px}
.tip-top{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:linear-gradient(var(--paper),var(--bg))}
.tip-top h2{margin:0!important;font-size:1.05rem}
.tip-tag{flex:none;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#0b1a33;background:var(--ball);padding:3px 9px;border-radius:999px}
.tip-main{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:16px}
.tip-who{display:flex;align-items:center;gap:12px;min-width:0}
.tip .tip-ph{width:56px;height:56px;border:2px solid var(--ball)}
.tip-pick{min-width:0}
.tip-pick small{display:block;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.tip-pick b{display:block;font-size:1.3rem;line-height:1.25;color:var(--ink)}
.tip-pick span{display:flex;align-items:center;gap:6px;font-size:.86rem;color:var(--muted)}
.tip-pct{text-align:center;padding:0 6px}
.tip-pct b{display:block;font-size:2.2rem;line-height:1;color:var(--court-2);font-weight:700}
.tip-pct small{font-size:.76rem;color:var(--muted)}
.tip-bet{display:flex;flex-direction:column;align-items:center;gap:4px;background:linear-gradient(135deg,var(--court),#1d5aa8);color:#fff;border-radius:12px;padding:10px 18px}
.tip-bet:hover{text-decoration:none;box-shadow:0 0 0 3px var(--ball)}
.tip-bet small{font-size:.74rem;color:#c9d6ec}
.tip-bet b{font-size:1.5rem;color:var(--ball);font-weight:600;line-height:1}
.tip-bet span{font-size:.78rem;font-weight:500;background:var(--ball);color:#0b1a33;border-radius:999px;padding:3px 10px}
.tip-res{font-weight:600;padding:8px 14px;border-radius:10px;white-space:nowrap}
.tip-res.hit{background:#e3f4ea;color:var(--win)}.tip-res.miss{background:#fbe9e7;color:var(--loss)}
.tip .pbar{margin:0 16px}
.tip-why{padding:6px 16px 4px}
.tip-why h3{font-size:.95rem;margin:12px 0 6px}
.tip-why ul{list-style:none;margin:0;padding:0}
.tip-why li{display:flex;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:.95rem}
.tip-why li:first-child{border-top:0}
.tip-why i{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:.8rem;font-weight:700}
.tip-why i.plus{background:#e3f4ea;color:var(--win)}.tip-why i.minus{background:#fbe9e7;color:var(--loss)}.tip-why i.eq{background:var(--bg);color:var(--muted)}
.tip details{padding:0 16px 14px}.tip summary{cursor:pointer;color:var(--court-2);font-size:.9rem;font-weight:500;padding:8px 0}
.tip details p{margin:.2em 0 0}
@media (max-width:640px){
  .tip-main{grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .tip-bet,.tip-res{grid-column:1/-1;flex-direction:row;justify-content:center;gap:12px;text-align:center}
  .tip-pick b{font-size:1.1rem}.tip-pct b{font-size:1.8rem}
}
/* Крупные кнопки коэффициентов: «Сделать ставку» стоит вплотную слева от коэффициента */
.odd-big{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"who cta k";gap:10px 12px}
.odd-big .ob-cta{align-self:center;justify-self:end}
@media (max-width:640px){.odd-big{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who who" "cta k"}.odd-big .ob-cta{justify-self:end}}
/* Главная: колонки сразу под заголовком */
main>.hero+.cols{margin-top:22px}
/* Силуэт-пустышка (картинка теннисиста с ракеткой): кадрируем по верхней части фигуры */
.ph-sil{object-fit:cover;object-position:50% 22%;background:#fff}
.ib-photo.ph-sil-big{object-position:50% 18%;background:#fff}

/* ---------- 3.9.6: экспресс дня ---------- */
.express{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(16,32,64,.05);margin:0 0 18px}
.ex-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:linear-gradient(var(--paper),var(--bg))}
.ex-legs{list-style:none;margin:0;padding:0}
.ex-legs li{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--line)}
.ex-legs li:first-child{border:0}
.ex-m{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.35}
.ex-m small{color:var(--muted);font-size:.78rem}
.ex-m a{color:var(--ink);font-weight:650}
.ex-m span{font-size:.88rem;color:var(--muted)}
.ex-odd{flex:none;height:38px;gap:8px;padding:0 12px;width:auto!important}
.ex-odd b{font-size:1rem}
.ex-foot{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:12px 16px;background:var(--bg);border-top:1px solid var(--line)}
.ex-foot>div{min-width:120px}
.ex-foot small{display:block;color:var(--muted);font-size:.76rem}
.ex-foot b{font-size:1.5rem;color:var(--court-2)}
.ex-foot .odds-more{margin:0 0 0 auto}
@media (max-width:600px){.ex-foot .odds-more{margin:0;width:100%;justify-content:center}}@media (max-width:1000px){.nav{-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent)}}

.rbox.race li.cut{border-bottom:2px dashed var(--muted)}
.mrow.fit-hide,.tgroup.fit-hide{display:none}

/* ---------- 4.1: телефон — короткие имена в строке матча, коэффициенты и сеты не обрезают фамилию ---------- */
.pn-s{display:none}
@media (max-width:600px){
  .mrow .pn-f{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .mrow .pn-s{display:inline}
}
.foot .logo-s{display:flex;align-items:center;gap:8px}
/* Коэффициент → счёт: одинаковый видимый отступ при любом числе сетов.
   Цифра сыгранного сета стоит по центру ячейки 22px (≈6px пустоты слева), а жёлтый текущий гейм виден от края —
   поэтому, когда первой идёт обычная цифра, ячейки сдвигаем на эти 6px ближе */
.m-p .odd+.sets{margin-left:-2px}
.mrow.is-live .m-p .odd+.sets:has(>.g:only-child){margin-left:4px}
@media (max-width:480px){
  .m-p .odd+.sets{margin-left:0}
  .mrow.is-live .m-p .odd+.sets:has(>.g:only-child){margin-left:6px}
}
/* Колонка времени/статуса — по ширине метки LIVE: игроки ближе к LIVE и времени (статусы — коротко: «Зав.») */
.mrow{grid-template-columns:44px minmax(0,1fr)}
.m-time span{overflow-wrap:anywhere;line-height:1.2}
@media (max-width:480px){.mrow{grid-template-columns:44px minmax(0,1fr)}}
