/* =========================================================================
   ФСР · Live-результаты · стиль 2026 (v5)
   Все размеры — в rem. Скрипт приравнивает rem к font-size <body>,
   поэтому масштаб всей страницы задаётся одной строкой в шаблоне:
   body { font-size: 16px }  (телевизор — 20–24px, и т.п.)
   Подключается ВМЕСТО /live/3.css и /live/2.css. Разметку страниц менять не
   нужно. Вместе с fsr-live-2026.js даёт: навигацию по раундам, карточки на
   телефоне, сетку скорости, партнёров и подвал. Без скрипта — аккуратная
   таблица.
   ========================================================================= */

@import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700;800&family=Oswald:wght@500;600;700&display=swap");

:root {
  --fsr-red: #EB3728;
  --fsr-red-d: #C5281A;
  --fsr-red-soft: #FDECEA;
  --fsr-blue: #06419F;
  --fsr-ink: #1E1F23;
  --fsr-ink-2: #2C2D33;
  --fsr-bg: #EEEEF0;
  --fsr-card: #FFFFFF;
  --fsr-line: #E6E6EA;
  --fsr-muted: #5B5C63;
  --fsr-faint: #9A9BA1;
  --fsr-gold: #D4A017;
  --fsr-silver: #9AA3B2;
  --fsr-bronze: #B8733A;
  --fsr-head-h: 7.5rem;
  --fsr-wrap: 82.5rem;
  --fsr-font: "Open Sans", Arial, sans-serif;
  --fsr-display: "Oswald", "Bebas", "Arial Narrow", sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--fsr-bg) !important;
  color: var(--fsr-ink);
  font-family: var(--fsr-font);
  /* базовый размер задаёт шаблон: body { font-size: … } — всё ниже в rem от него */
  line-height: 1.35;
  padding: 0;
  min-height: 100vh;
  position: relative;
}
a { color: inherit; }

/* =========================== ШАПКА =========================== */
#title {
  position: relative;
  height: var(--fsr-head-h);
  background: var(--fsr-ink);
  color: #fff;
  display: flex; flex-direction: column; justify-content: center;
  padding: 0 26.25rem 0 15.625rem;
  overflow: hidden;
}
#title::after { /* фирменный красно-синий срез 45° */
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 6.875rem;
  background: linear-gradient(135deg, transparent 0 40%, var(--fsr-blue) 40% 64%, var(--fsr-red) 64%);
  pointer-events: none;
}
#title h1, #title h3 {
  font-family: var(--fsr-display); font-weight: 700; text-transform: uppercase;
  color: #fff; text-align: left; margin: 0; padding: 0; letter-spacing: .5px;
}
#title h3 { font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.1875rem; color: #FF7A6E; margin-bottom: 0.5rem; }
#title h3:empty { display: none; }
#title h1 { font-size: 2.125rem; line-height: 1.05; }
.fsr-h-tag {
  display: block; margin: 0 0 0.375rem;
  font-family: var(--fsr-font); font-size: 1rem; font-weight: 800; letter-spacing: 0.04rem;
  color: #fff; text-transform: uppercase;
}
.fsr-h-tag::before { content: ""; display: inline-block; width: 0.5rem; height: 0.5rem; background: var(--fsr-red); margin-right: 0.5rem; vertical-align: 0.1rem; }
.fsr-h-round { font-size: 1.875rem; font-weight: 600; color: rgba(255,255,255,.92); }
.fsr-h-round.is-long { font-size: 1.625rem; }

#tlsvg, #brsvg, #cfrpng { display: none !important; }
#cfrwpng { position: absolute; top: 1.75rem; left: 2.5rem; height: 4rem; width: auto; z-index: 3; }

/* ---------- Партнёры: белая панель справа в шапке со срезом 45° ---------- */
#title::after { z-index: 5; }
/* без скрипта: белая панель фиксированной ширины, логотипы прямо на белом */
html:not(.fsr-js) #title::before {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 32.5rem; z-index: 2;
  background: #fff; clip-path: polygon(var(--fsr-head-h) 0, 100% 0, 100% 100%, 0 100%);
}
#rzdsvg, #szhsvg, #rsfpng, #sbersvg { position: absolute; top: 1.875rem; height: 3.75rem; width: auto; z-index: 3; }
#rsfpng { right: 8.75rem; } #rzdsvg { right: 15.625rem; } #szhsvg, #sbersvg { right: 22.5rem; }
/* со скриптом — шапка в один ряд: текст | белая панель партнёров (ширина по числу логотипов) */
.fsr-js #title { flex-direction: row; align-items: stretch; padding-right: 0; }
.fsr-title-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; padding-right: 1.5rem; }
.fsr-title-txt h1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fsr-js .fsr-h-tag { display: block; }
.fsr-js #title .fsr-partners { padding-left: 6.25rem; padding-right: 6rem; clip-path: polygon(var(--fsr-head-h) 0, 100% 0, 100% 100%, 0 100%); }
.fsr-js #title .fsr-partners::before { left: 7.75rem; }
.fsr-js #title .fsr-partner { padding: 0 1.125rem; }
.fsr-js #title .fsr-partner:first-child { padding-left: 0; }
.fsr-js #title .fsr-partner img { max-width: 8.5rem; max-height: 3rem; }
.fsr-tabs { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 1rem, #000 calc(100% - 1.5rem), transparent); mask-image: linear-gradient(90deg, transparent 0, #000 1rem, #000 calc(100% - 1.5rem), transparent); padding: 0 0.75rem; }
.fsr-js #title .fsr-partners { position: relative; right: auto; top: auto; bottom: auto; flex: none; }
.fsr-js body > img:not(#cfrwpng) { display: none !important; }
.fsr-partners {
  position: absolute; right: 0; top: 0; bottom: 0; z-index: 3;
  display: flex; align-items: center;
  padding: 0 8.75rem 0 calc(var(--fsr-head-h) + 0.5rem);
  background: #fff;
  clip-path: polygon(var(--fsr-head-h) 0, 100% 0, 100% 100%, 0 100%);
}
.fsr-partners.fsr-partners-row {
  display: none; position: static; clip-path: none; background: #fff;
  padding: 0.5rem 2.5rem; overflow-x: auto; border-bottom: 1px solid var(--fsr-line);
}
.fsr-partners-row::before { position: static !important; flex: none; margin-right: 1.25rem; align-self: center; }
.fsr-partners-row .fsr-partner { height: 2.5rem; padding: 0 1rem; flex: none; }
.fsr-partners-row .fsr-partner img { max-height: 2rem; max-width: 7.5rem; }
.fsr-partners::before {
  content: ""; position: absolute; left: calc(var(--fsr-head-h) + 0.5rem); top: 0.875rem;
  font-size: 0.5625rem; font-weight: 800; letter-spacing: 0.125rem; text-transform: uppercase; color: var(--fsr-faint);
}
.fsr-partner { display: inline-flex; align-items: center; justify-content: center; height: 4rem; padding: 0 1.375rem; background: transparent; }
.fsr-partner + .fsr-partner { border-left: 1px solid var(--fsr-line); }
.fsr-partner:first-child { padding-left: 0; }
.fsr-partner img { max-height: 3.25rem; max-width: 10rem; width: auto; height: auto; display: block; }

/* =========================== НАВИГАЦИЯ =========================== */
.fsr-nav-top { display: contents; }
.fsr-home { order: 1; } .fsr-grp { order: 2; flex: none; } .fsr-nav .fsr-tabs { order: 3; } .fsr-nav .fsr-live { order: 4; }
.fsr-grp:empty { display: none; }
.fsr-sel { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.06rem; text-transform: uppercase; color: var(--fsr-faint); }
.fsr-sel select {
  font: inherit; font-size: 0.875rem; font-weight: 800; letter-spacing: 0; text-transform: none; color: var(--fsr-ink);
  height: 2.25rem; padding: 0 2rem 0 0.75rem; border: 1px solid var(--fsr-line); border-radius: 0; background: #fff;
  -webkit-appearance: none; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--fsr-ink) 50%), linear-gradient(135deg, var(--fsr-ink) 50%, transparent 50%);
  background-position: calc(100% - 0.9rem) 50%, calc(100% - 0.6rem) 50%; background-size: 0.3rem 0.3rem; background-repeat: no-repeat;
}
.fsr-nav {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: 1rem;
  background: #fff; border-bottom: 1px solid var(--fsr-line);
  padding: 0 2.5rem; height: 3.5rem;
  box-shadow: 0 0.125rem 0.625rem rgba(30,31,35,.06);
}
.fsr-home {
  display: inline-flex; align-items: center; gap: 0.625rem; flex: none;
  height: 2.25rem; padding: 0 1rem 0 0.75rem; background: var(--fsr-ink); color: #fff;
  font-size: 0.8125rem; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; text-decoration: none;
  clip-path: polygon(0 0, 100% 0, calc(100% - 0.625rem) 100%, 0 100%);
  padding-right: 1.375rem;
}
.fsr-home svg { width: 1.125rem; height: 1.125rem; fill: currentColor; }
.fsr-home:hover { background: var(--fsr-red); }
.fsr-tabs { display: flex; gap: 0.25rem; overflow-x: auto; scrollbar-width: none; flex: 1; min-width: 0; height: 100%; }
.fsr-tabs::-webkit-scrollbar { display: none; }
.fsr-tab {
  display: inline-flex; align-items: center; white-space: nowrap; flex: none;
  padding: 0 0.875rem; height: 100%;
  font-size: 0.8125rem; font-weight: 700; color: var(--fsr-muted); text-decoration: none;
  border-bottom: 0.1875rem solid transparent; border-top: 0.1875rem solid transparent;
}
.fsr-tab:hover { color: var(--fsr-ink); }
.fsr-tab.is-on { color: var(--fsr-ink); border-bottom-color: var(--fsr-red); font-weight: 800; }
.fsr-tab.is-next { color: var(--fsr-faint); }
.fsr-sex { display: flex; flex: none; }
.fsr-sex:empty { display: none; }
.fsr-sex a {
  padding: 0 0.75rem; height: 2.25rem; display: inline-flex; align-items: center; justify-content: center;
  font-size: 0.8125rem; font-weight: 800; text-decoration: none; color: var(--fsr-muted);
  border: 1px solid var(--fsr-line);
}
.fsr-sex a + a { border-left: 0; }
.fsr-sex a.is-on { background: var(--fsr-blue); border-color: var(--fsr-blue); color: #fff; }
.fsr-live {
  flex: none; display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.0938rem; color: var(--fsr-muted);
}
.fsr-live i { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--fsr-red); animation: fsr-pulse 1.6s infinite; }
@keyframes fsr-pulse { 0% { box-shadow: 0 0 0 0 rgba(235,55,40,.55); } 80%,100% { box-shadow: 0 0 0 0.5rem rgba(235,55,40,0); } }

/* =========================== ПРОТОКОЛ =========================== */
.fsr-scroll { max-width: var(--fsr-wrap); margin: 1.75rem auto 0; padding: 0 2rem; }
/* ширина протокола — по содержимому: фамилия рядом с результатом */
table.fsr-proto { width: auto; min-width: min(100%, 50rem); }
table.fsr-proto td.name { padding-right: 2.5rem; }
table {
  font-family: var(--fsr-font); font-weight: 400;
  width: 100%; margin: 0 auto !important;
  border-collapse: separate; border-spacing: 0;
  background: var(--fsr-card);
  font-variant-numeric: tabular-nums;
  box-shadow: 0 1px 0 rgba(30,31,35,.04), 0 0.5rem 1.5rem rgba(30,31,35,.05);
}
th {
  font-family: var(--fsr-font);
  font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.0938rem; text-transform: uppercase;
  color: rgba(255,255,255,.75); background: var(--fsr-ink);
  padding: 0.8125rem 0.625rem; text-align: center; white-space: nowrap; border: 0;
}
table:not(.event_table) thead tr:first-child th:first-child { box-shadow: inset 0.3125rem 0 0 var(--fsr-red); }
th.fsr-group { border-bottom: 1px solid rgba(255,255,255,.15); }
td {
  font-size: 1.0625rem; height: auto;
  padding: 0.75rem 0.625rem;
  border: 0; border-bottom: 1px solid var(--fsr-line);
  vertical-align: middle; background: transparent;
}
tbody tr:hover td { background: #F8F8FA; }
.fsr-hide { display: none !important; }

.rank { width: 4.5rem; text-align: center; font-family: var(--fsr-display); font-size: 1.625rem; font-weight: 600; color: var(--fsr-ink); }
td.id { width: 3.75rem; text-align: center; color: var(--fsr-faint); font-size: 0.875rem; font-weight: 700; }
.st   { width: 3.5rem; text-align: center; color: var(--fsr-faint); font-weight: 700; font-size: 0.875rem; }
.name { min-width: 15rem; padding-left: 0.875rem; font-weight: 700; font-size: 1.125rem; text-align: left; white-space: nowrap; }
th.name, th.fsr-name-h { text-align: left; padding-left: 0.875rem; }
.command { width: 6rem; padding-left: 0.625rem; text-align: left; }
td.command { font-size: 0.75rem; font-weight: 800; letter-spacing: 1px; color: var(--fsr-muted); }
td.pre  { width: 5.625rem; text-align: center; color: var(--fsr-muted); font-size: 0.9375rem; font-weight: 600; }
td.res  { text-align: center; white-space: nowrap; font-weight: 600; }
/* итоговая колонка — как PTS в НХЛ */
td.fsr-total, table:not(.fsr-proto) tr > td.res:last-child {
  font-family: var(--fsr-display); font-size: 1.5rem; font-weight: 600;
  background: #F4F4F6; min-width: 6.875rem; text-align: center;
}
th.fsr-total { background: var(--fsr-ink-2); color: #fff; width: 8.75rem; }
td.fsr-total { width: 8.75rem; }
tbody tr:hover td.fsr-total { background: #EEEEF1; }
td.fsr-total .fsr-top { font-family: var(--fsr-font); font-size: 0.9375rem; }

/* бейджи */
.fsr-top  { display: inline-block; background: var(--fsr-red); color: #fff; font-size: 0.8125rem; font-weight: 800; letter-spacing: 1px; padding: 0.1875rem 0.5625rem; line-height: 1.3; }
.fsr-fall { display: inline-block; background: var(--fsr-red-soft); color: var(--fsr-red-d); font-family: var(--fsr-font); font-size: 0.6875rem; font-weight: 800; letter-spacing: 1px; padding: 0.1875rem 0.5rem; text-transform: uppercase; line-height: 1.3; }
.fsr-best { color: var(--fsr-ink); font-weight: 800 !important; }
.fsr-dim  { color: var(--fsr-faint); font-weight: 600; }

/* прошедшие дальше: ТОЛЬКО линия отсечения (без цветных полос и значков) */
tr.fsr-cut td {
  padding: 0.125rem 0.75rem 0.0625rem !important; height: auto; border: 0 !important; border-bottom: 0.1875rem solid var(--fsr-red) !important;
  background: transparent !important; text-align: right; line-height: 1;
}
tr.fsr-cut td span { font-size: 0.625rem; font-weight: 800; letter-spacing: 0.06rem; text-transform: uppercase; color: var(--fsr-red); white-space: nowrap; }
tbody tr.fsr-cut:hover td { background: transparent !important; }

/* призёры — только место-медаль, без заливки строки */
tr.fsr-p1 td.rank, tr.fsr-p2 td.rank, tr.fsr-p3 td.rank { color: #fff; background-clip: content-box; padding: 0.5rem 0.875rem; }
tr.fsr-p1 td.rank { background-color: var(--fsr-gold); }
tr.fsr-p2 td.rank { background-color: var(--fsr-silver); }
tr.fsr-p3 td.rank { background-color: var(--fsr-bronze); }
tr.fsr-p1:hover td.rank { background-color: var(--fsr-gold); }
tr.fsr-p2:hover td.rank { background-color: var(--fsr-silver); }
tr.fsr-p3:hover td.rank { background-color: var(--fsr-bronze); }

/* =========================== БОУЛДЕРИНГ =========================== */
td.route { width: 4rem; padding: 0.5rem 0.25rem; text-align: center; }
td.route div {
  width: 3.125rem; height: 2.5rem; margin: 0 auto; background: #E4E4E7;
  display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
  font-size: 0.75rem; font-weight: 800; line-height: 1.25rem; color: #fff; text-align: center;
}
/* r_2 — топ (верх: попытки на топ, низ: на зону); r_1 — зона; r_3 — пусто */
td.route div.r_2 { background: linear-gradient(180deg, var(--fsr-red) 50%, #B92A1D 50%); }
td.route div.r_1 { background: linear-gradient(180deg, #E4E4E7 50%, var(--fsr-blue) 50%); }
/* r_0 — лез, без результата (серая); r_3 — ещё не выходил (пустая с пунктиром) */
td.route div.r_0 { background: #BEC4CF; }
td.route div.r_3 { background: transparent; outline: 1px dashed #C4C6CC; outline-offset: -1px; }
td.route_sum { width: 6.875rem; text-align: center; }

/* =========================== СЕТКА СКОРОСТИ =========================== */
/* без скрипта: исходная таблица аккуратнее */
.fsr-scroll:has(> table.fsr-bracket) { overflow-x: auto; }
table.fsr-bracket { background: transparent; box-shadow: none; width: auto; }
table.fsr-bracket td { border: 0; padding: 0 0.625rem; height: 2rem; font-size: 0.875rem; background: transparent !important; }
table.fsr-bracket td.pre { width: 2.125rem; font-size: 0.75rem; color: var(--fsr-faint); background: #fff !important; }
table.fsr-bracket td.name { min-width: 11.875rem; background: #fff !important; font-weight: 600; color: var(--fsr-muted); border-left: 0.25rem solid transparent; }
table.fsr-bracket td.res  { min-width: 4.375rem; background: #fff !important; color: var(--fsr-faint); font-weight: 700; font-family: var(--fsr-font); font-size: 0.875rem; }
table.fsr-bracket td.name.win { color: var(--fsr-ink); font-weight: 800; border-left-color: var(--fsr-red); }
table.fsr-bracket td.res.win { color: var(--fsr-ink); }
table.fsr-bracket td.right-border { border-right: 0.125rem solid #C9CAD0; }
table.fsr-bracket td.rank { font-family: var(--fsr-display); font-size: 1.125rem; color: var(--fsr-red); white-space: nowrap; }

/* e8 без скрипта: блоки в фирменных цветах */
div.p, div.r, div.fl { font-family: var(--fsr-font) !important; font-size: 1rem !important; line-height: 2.4rem; padding: 0 .6rem !important; height: 2.4rem !important; background: #fff !important; color: var(--fsr-muted) !important; font-weight: 700; }
div.p.win { color: var(--fsr-ink) !important; box-shadow: inset 0.25rem 0 0 var(--fsr-red); font-weight: 800; }
div.r.win { color: var(--fsr-ink) !important; }
div.fl { color: var(--fsr-faint) !important; font-size: .8rem !important; }
div.rl { border-right-color: #C9CAD0 !important; } div.tl { border-top-color: #C9CAD0 !important; }
div.medal { font-family: var(--fsr-display) !important; color: var(--fsr-red) !important; text-transform: uppercase; font-size: 1.2rem !important; }

/* со скриптом: исходные блоки скрыты, рисуется новая сетка */
.fsr-br-on .fsr-scroll:has(> table.fsr-bracket),
.fsr-br-on table.fsr-bracket,
.fsr-br-on div.p, .fsr-br-on div.r, .fsr-br-on div.fl, .fsr-br-on div.rl, .fsr-br-on div.tl, .fsr-br-on div.medal { display: none !important; }

.fsr-br {
  max-width: none; margin: 1.5rem 0 0; padding: 0 2rem;
  display: grid; grid-template-columns: repeat(var(--fsr-cols, 4), minmax(0, 1fr)); gap: 1.5rem;
}
.fsr-br-col { display: flex; flex-direction: column; min-width: 0; }
.fsr-br-h {
  font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.125rem; text-transform: uppercase; color: #fff;
  background: var(--fsr-ink); padding: 0.625rem 0.875rem; margin-bottom: 0.875rem;
  box-shadow: inset 0.3125rem 0 0 var(--fsr-red);
}
.fsr-br-col.is-final .fsr-br-h { background: var(--fsr-red); box-shadow: none; }
.fsr-br-col.is-podium .fsr-br-h { background: var(--fsr-blue); box-shadow: none; }
.fsr-br-list { flex: 1; display: flex; flex-direction: column; justify-content: space-around; gap: 0.875rem; min-height: calc(var(--fsr-h) * 4.75rem); }
.fsr-heat { background: var(--fsr-card); box-shadow: 0 0.375rem 1.125rem rgba(30,31,35,.06); display: flex; flex-direction: column; }
.fsr-heat.is-gold { outline: 0.1875rem solid var(--fsr-red); outline-offset: -0.1875rem; }
.fsr-heat-l { font-size: 0.625rem; font-weight: 800; letter-spacing: 0.0938rem; text-transform: uppercase; color: var(--fsr-red); padding: 0.5rem 0.875rem 0.125rem; }
.fsr-ln {
  display: flex; align-items: center; gap: 0.5rem; min-height: 2.125rem; padding: 0 0.75rem 0 0.625rem;
  border-left: 0.25rem solid transparent; color: var(--fsr-ink);
}
.fsr-ln + .fsr-ln { border-top: 1px solid var(--fsr-line); }
.fsr-ln.is-win { border-left-color: var(--fsr-red); }
.fsr-ln.is-win .fsr-ln-n { font-weight: 800; }
.fsr-ln.is-lose { color: var(--fsr-faint); }
.fsr-ln.is-empty { color: #B5B7BD; }
.fsr-ln.is-empty .fsr-ln-n { font-size: 0.75rem; font-weight: 600; font-style: italic; }
.fsr-heat.is-wait { box-shadow: none; outline: 1px dashed #C9CAD0; outline-offset: -1px; }
.fsr-heat.is-run { box-shadow: inset 0.25rem 0 0 var(--fsr-blue), 0 0.375rem 1.125rem rgba(30,31,35,.06); }
.fsr-heat.is-run::after { content: "идёт забег"; font-size: 0.5625rem; font-weight: 800; letter-spacing: 0.06rem; text-transform: uppercase; color: var(--fsr-blue); padding: 0 0.75rem 0.3125rem 0.875rem; }
/* выбранный раунд сетки (вкладки 1/4 · 1/2 · финал) */
.fsr-br.has-focus .fsr-br-col:not(.is-focus):not(.is-podium) { opacity: .35; transition: opacity .2s; }
.fsr-br.has-focus .fsr-br-col.is-focus .fsr-br-h { background: var(--fsr-red); box-shadow: none; }
/* до отрисовки скриптом исходная разметка сетки не показывается — без «дёрганья» */
@media (scripting: enabled) {
  html:not(.fsr-ready) div.p, html:not(.fsr-ready) div.r, html:not(.fsr-ready) div.fl, html:not(.fsr-ready) div.rl,
  html:not(.fsr-ready) div.tl, html:not(.fsr-ready) div.medal, html:not(.fsr-ready) table:has(td.right-border),
  html:not(.fsr-ready) table.event_table { visibility: hidden; }
}
.fsr-ln-s { width: 1.25rem; flex: none; font-size: 0.6875rem; font-weight: 800; color: var(--fsr-faint); }
.fsr-ln-n { flex: 1; min-width: 0; font-size: 0.875rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fsr-ln-t { flex: none; font-size: 0.9375rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.fsr-ln.is-win .fsr-ln-t { color: var(--fsr-ink); }
.fsr-podium { display: flex; flex-direction: column; gap: 0.375rem; }
.fsr-pod { display: flex; align-items: center; gap: 0.75rem; background: var(--fsr-card); padding: 0.5rem 0.75rem 0.5rem 0.5rem; box-shadow: 0 0.375rem 1.125rem rgba(30,31,35,.06); }
.fsr-pod-p { width: 2.25rem; height: 2.25rem; flex: none; display: inline-flex; align-items: center; justify-content: center; font-family: var(--fsr-display); font-size: 1.25rem; font-weight: 600; color: #fff; background: var(--fsr-faint); }
.fsr-pod-1 .fsr-pod-p { background: var(--fsr-gold); }
.fsr-pod-2 .fsr-pod-p { background: var(--fsr-silver); }
.fsr-pod-3 .fsr-pod-p { background: var(--fsr-bronze); }
.fsr-pod-4 { opacity: .7; }
.fsr-pod-n { font-size: 0.9375rem; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* =========================== ГЛАВНАЯ (index.html) =========================== */
table.event_table { background: transparent; box-shadow: none; border-spacing: 1.5rem 0; table-layout: fixed; margin: 0 -1.5rem !important; width: calc(100% + 3rem); }
.fsr-scroll:has(> table.event_table) { margin-top: 2rem; }
table.event_table th {
  background: var(--fsr-card); color: var(--fsr-ink);
  font-family: var(--fsr-display); font-size: 1.625rem; font-weight: 600; letter-spacing: .5px;
  text-align: left; padding: 1.375rem 1.5rem 1rem; border: 0; border-top: 0.375rem solid var(--fsr-blue); box-shadow: none;
}
table.event_table td { background: var(--fsr-card); vertical-align: top; padding: 0.25rem 1.5rem 1.5rem; border: 0; font-size: 1rem; }
table.event_table tbody tr:hover td { background: var(--fsr-card); }
.g_title { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.125rem; text-transform: uppercase; color: var(--fsr-muted); margin: 1.125rem 0 0.25rem; }
.p_l { border-top: 1px solid var(--fsr-line); }
.p_l a { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 0; color: var(--fsr-ink); font-weight: 700; font-size: 1rem; text-decoration: none; }
.p_l a::after { content: "›"; margin-left: auto; color: var(--fsr-faint); font-size: 1.25rem; line-height: 1; }
.p_l a:hover { color: var(--fsr-red); }
.l_pas, .l_fut { width: 1.125rem; height: 1.125rem; flex: none; }
.l_pas { background: #1F8A4C; clip-path: polygon(14% 52%, 0 66%, 38% 100%, 100% 22%, 86% 8%, 38% 72%); }
.l_fut { border: 0.125rem solid #C9CAD0; border-radius: 50%; }

/* ---------- Главная со скриптом: сетка карточек дисциплин ---------- */
.fsr-ix { max-width: var(--fsr-wrap); margin: 2rem auto 0; padding: 0 2rem; }
.fsr-now { background: var(--fsr-ink); color: #fff; padding: 1rem 1.25rem 1.125rem; margin-bottom: 1.5rem; box-shadow: inset 0.3125rem 0 0 var(--fsr-red); }
.fsr-now-h { display: flex; align-items: center; gap: 0.5rem; font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.125rem; text-transform: uppercase; color: #FF8A7E; margin-bottom: 0.625rem; }
.fsr-now-h i { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--fsr-red); animation: fsr-pulse 1.6s infinite; }
.fsr-now-list { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.fsr-now-list a { display: flex; flex-direction: column; gap: 0.125rem; padding: 0.5rem 0.875rem; background: rgba(255,255,255,.08); text-decoration: none; min-width: 11rem; }
.fsr-now-list a:hover { background: rgba(255,255,255,.16); }
.fsr-now-list span { font-size: 0.6875rem; font-weight: 700; color: rgba(255,255,255,.65); }
.fsr-now-list b { font-family: var(--fsr-display); font-size: 1.125rem; font-weight: 600; text-transform: uppercase; }
.fsr-ix-tabs { display: none; }
.fsr-ix-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1.25rem; align-items: start; }
.fsr-ix-card { background: var(--fsr-card); border-top: 0.375rem solid var(--fsr-blue); padding: 1.125rem 1.25rem 1.25rem; min-width: 0; }
.fsr-ix-card h2 { margin: 0 0 0.5rem; font-family: var(--fsr-display); font-size: 1.5rem; font-weight: 600; line-height: 1.1; text-transform: uppercase; letter-spacing: .3px; overflow-wrap: anywhere; hyphens: auto; }
.fsr-ix-g { border-top: 1px solid var(--fsr-line); }
.fsr-ix-g:first-of-type { border-top: 0; }
.fsr-ix-gh { all: unset; box-sizing: border-box; width: 100%; cursor: pointer; display: flex; align-items: baseline; gap: 0.5rem; padding: 0.875rem 0 0.375rem; }
.fsr-ix-gh b { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1rem; text-transform: uppercase; color: var(--fsr-muted); }
.fsr-ix-gh span { margin-left: auto; font-size: 0.6875rem; font-weight: 700; color: var(--fsr-faint); }
.fsr-ix-rs a { display: flex; align-items: center; gap: 0.75rem; padding: 0.625rem 0; border-top: 1px solid #F0F0F2; color: var(--fsr-ink); font-weight: 700; font-size: 0.9375rem; text-decoration: none; }
.fsr-ix-rs a:hover { color: var(--fsr-red); }
.fsr-ix-rs a::after { content: "›"; margin-left: auto; color: var(--fsr-faint); font-size: 1.25rem; line-height: 1; }
.fsr-ix-rs a i { width: 1rem; height: 1rem; flex: none; border-radius: 50%; border: 0.125rem solid #C9CAD0; }
.fsr-ix-rs a.is-done i { border: 0; border-radius: 0; background: #1F8A4C; clip-path: polygon(14% 52%, 0 66%, 38% 100%, 100% 22%, 86% 8%, 38% 72%); }
.fsr-ix-rs a.is-now { color: var(--fsr-red); }
.fsr-ix-rs a.is-now i { border-color: var(--fsr-red); background: var(--fsr-red); box-shadow: 0 0 0 0.25rem rgba(235,55,40,.18); }

/* =========================== ПОДВАЛ / РЕКЛАМА =========================== */
.fsr-ad { display: block; max-width: var(--fsr-wrap); margin: 2rem auto 0; padding: 0 2rem; }
.fsr-ad img { display: block; width: 100%; height: auto; }
.fsr-foot { margin-top: 3rem; background: var(--fsr-ink); color: rgba(255,255,255,.6); }
.fsr-foot-in { max-width: var(--fsr-wrap); margin: 0 auto; padding: 1.75rem 2rem 2rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.fsr-foot-lbl { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.125rem; text-transform: uppercase; }
.fsr-foot-logos { display: flex; flex-wrap: wrap; align-items: center; background: #fff; padding: 0.875rem 1.5rem; clip-path: polygon(0 0, 100% 0, calc(100% - 1.5rem) 100%, 0 100%); padding-right: 3rem; }
.fsr-foot-logos .fsr-partner { height: 3rem; }
.fsr-foot-logos .fsr-partner img { max-height: 2.5rem; }
.fsr-foot-copy { margin-left: auto; font-size: 0.75rem; font-weight: 600; }
body { padding-bottom: 0 !important; }

/* =========================== ПЛАНШЕТ =========================== */
@media (max-width: 1180px) {
  #title { padding-right: 8.75rem !important; }
  #title .fsr-partners { display: none; }
  .fsr-partners.fsr-partners-row { display: flex; }
  html:not(.fsr-js) #title::before { display: none; }
  .fsr-live { display: none; }
}

/* ====== Сетка скорости на телефоне и планшете (в т.ч. горизонтально): раунды стопкой, свежий сверху ====== */
@media (max-width: 1100px) {
  .fsr-br { display: flex; flex-direction: column-reverse; gap: 1.375rem; padding: 0 0.75rem; margin-top: 1rem; overflow: visible; }
  .fsr-br-list { min-height: 0 !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); align-content: start; gap: 0.625rem; }
  .fsr-br-h { margin-bottom: 0.625rem; }
  .fsr-ln-n { font-size: 0.9375rem; }
  .fsr-podium { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
}

/* =========================== ТЕЛЕФОН =========================== */
@media (max-width: 760px) {
  :root { --fsr-head-h: auto; }
  #title { height: auto; min-height: 4.5rem; padding: 0.625rem 3.25rem 0.625rem 4rem; justify-content: center; }
  #title::after { width: 3rem; }
  #title h3 { display: none; }
  #title h1 { font-size: 1.375rem; }
  .fsr-h-tag, .fsr-js .fsr-h-tag { font-size: 0.75rem; margin: 0 0 0.25rem; }
  .fsr-h-round, .fsr-h-round.is-long { font-size: 1.25rem; }
  .fsr-title-txt h1 { white-space: normal; overflow: visible; line-height: 1; }
  .fsr-title-txt { padding-right: 0; }
  /* на телефоне — только эмблема ФСР */
  #cfrwpng { top: 1rem; left: 0.875rem; height: 2.5rem; width: 2.5rem; object-fit: cover; object-position: left center; }
  #rzdsvg, #szhsvg, #rsfpng, #sbersvg { display: none; }

  /* партнёры — строка под шапкой */
  .fsr-partners.fsr-partners-row { padding: 0.375rem 1rem; }
  .fsr-partners-row::before { font-size: 0.5rem; letter-spacing: 0.0938rem; margin-right: 0.75rem !important; }
  .fsr-partners .fsr-partner { height: 2rem; padding: 0 0.75rem; }
  .fsr-partners .fsr-partner img { max-height: 1.625rem; max-width: 6rem; }

  /* навигация в две строки: домой · группа · LIVE / раунды */
  .fsr-nav { flex-direction: column; align-items: stretch; height: auto; padding: 0; gap: 0; }
  .fsr-nav-top { display: flex; align-items: center; gap: 0.5rem; height: 2.75rem; padding-right: 0.5rem; border-bottom: 1px solid var(--fsr-line); }
  .fsr-home { height: 2.75rem; width: 3rem; padding: 0; justify-content: center; clip-path: none; }
  .fsr-home span { display: none; }
  .fsr-grp { flex: 1; min-width: 0; display: flex; }
  .fsr-sel { flex: 1; min-width: 0; } .fsr-sel span { display: none; } .fsr-sel select { width: 100%; height: 2rem; }
  .fsr-sex { flex: 1; } .fsr-sex a { flex: 1; height: 2rem; padding: 0 0.5rem; font-size: 0.75rem; }
  .fsr-nav .fsr-live { display: inline-flex; font-size: 0.625rem; }
  .fsr-nav .fsr-tabs { height: 2.75rem; flex: none; }
  .fsr-tab { padding: 0 0.625rem; font-size: 0.8125rem; }
  /* главная: «сейчас и далее», дисциплины вкладками, группы раскрываются */
  .fsr-ix { padding: 0 0.75rem; margin-top: 0.75rem; }
  .fsr-now { margin-bottom: 0.75rem; padding: 0.75rem 0.875rem 0.875rem; }
  .fsr-now-list { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -0.875rem; padding: 0 0.875rem; }
  .fsr-now-list::-webkit-scrollbar { display: none; }
  .fsr-now-list a { min-width: 0; flex: none; max-width: 15rem; }
  .fsr-ix-tabs { display: flex; gap: 0.25rem; overflow-x: auto; scrollbar-width: none; margin: 0 -0.75rem; padding: 0 0.75rem; position: sticky; top: 0; z-index: 10; background: var(--fsr-bg); }
  .fsr-ix-tabs::-webkit-scrollbar { display: none; }
  .fsr-ix-tabs button { all: unset; flex: none; padding: 0.75rem 0.75rem 0.625rem; font-family: var(--fsr-display); font-size: 1rem; font-weight: 600; text-transform: uppercase; color: var(--fsr-muted); border-bottom: 0.1875rem solid transparent; cursor: pointer; }
  .fsr-ix-tabs button.is-on { color: var(--fsr-ink); border-bottom-color: var(--fsr-red); }
  .fsr-ix-grid { display: block; }
  .fsr-ix-card { display: none; border-top-width: 0; padding: 0.25rem 1rem 0.75rem; }
  .fsr-ix-card.is-on { display: block; }
  .fsr-ix-card h2 { display: none; }
  .fsr-ix-gh { padding: 0.875rem 0; }
  .fsr-ix-gh::after { content: "+"; font-size: 1.125rem; font-weight: 700; color: var(--fsr-muted); margin-left: 0.5rem; line-height: 1; }
  .fsr-ix-g.is-open .fsr-ix-gh::after { content: "–"; }
  .fsr-ix-g:not(.is-open) .fsr-ix-rs { display: none; }

  .fsr-scroll { margin-top: 0.75rem; padding: 0; }

  /* Протокол на телефоне — как на старом сайте: вся таблица на ширину экрана,
     одна строка на спортсмена, прокрутка только вверх-вниз.
     Если колонок слишком много — скрипт дополнительно ужимает таблицу (zoom). */
  .fsr-scroll:has(> table.fsr-proto) { overflow: hidden; }
  table.fsr-proto { width: 100%; table-layout: auto; box-shadow: none; }
  table.fsr-proto th { padding: 0.4375rem 0.1875rem; font-size: 0.5625rem; letter-spacing: .5px; }
  table.fsr-proto th.fsr-name-h { padding-left: 0.375rem; }
  table.fsr-proto td { padding: 0.375rem 0.1875rem; font-size: 0.8125rem; height: 2.5rem; }
  table.fsr-proto td.rank { width: 1.75rem; font-size: 1rem; padding: 0.375rem 0.125rem; }
  table.fsr-proto tr.fsr-p1 td.rank, table.fsr-proto tr.fsr-p2 td.rank, table.fsr-proto tr.fsr-p3 td.rank { padding: 0.25rem 0.125rem; }
  table.fsr-proto td.name {
    min-width: 0; padding-left: 0.375rem;
    font-family: var(--fsr-display); font-weight: 600; font-size: 0.9375rem; text-transform: uppercase; letter-spacing: .2px;
    white-space: normal; line-height: 1.05;
  }
  table.fsr-proto td.command { width: 2.5rem; padding: 0 0.125rem; font-family: var(--fsr-display); font-weight: 500; font-size: 0.6875rem; letter-spacing: .3px; }
  table.fsr-proto td.fsr-mid { font-size: 0.75rem; font-weight: 700; white-space: nowrap; }
  table.fsr-proto td.fsr-mid .fsr-top, table.fsr-proto td.fsr-mid .fsr-fall, table.fsr-proto td.fsr-total .fsr-top { font-size: 0.5625rem; padding: 0.0625rem 0.25rem; letter-spacing: .3px; }
  table.fsr-proto td.fsr-total { width: 2.875rem; min-width: 2.875rem; font-size: 1rem; padding: 0.375rem 0.25rem; }
  table.fsr-proto th.fsr-total { width: 2.875rem; }
  /* боулдеринг: узкие плитки, как на табло */
  table.fsr-proto td.route { width: 1.25rem; padding: 0.25rem 0.0625rem; }
  table.fsr-proto td.route div { width: 1.125rem; height: 1.875rem; font-size: 0.5625rem; line-height: 0.9375rem; }
  table.fsr-proto tr.fsr-cut td { height: auto; padding: 0.0625rem 0.375rem 0 !important; }
  table.fsr-proto tr.fsr-cut td span { font-size: 0.5rem; }
  /* главная */
  .fsr-index .fsr-scroll { padding: 0 0.75rem; }
  table.event_table { display: flex; flex-direction: column; border-spacing: 0; width: 100%; margin: 0 !important; }
  table.event_table thead, table.event_table tbody, table.event_table tr { display: contents; }
  table.event_table th, table.event_table td { display: block; width: auto; }
  table.event_table th { margin-top: 1rem; font-size: 1.375rem; padding: 1.125rem 1.125rem 0.75rem; }
  table.event_table td { padding: 0 1.125rem 1.125rem; }
  table.event_table th:nth-child(1) { order: 1; } table.event_table td:nth-child(1) { order: 2; }
  table.event_table th:nth-child(2) { order: 3; } table.event_table td:nth-child(2) { order: 4; }
  table.event_table th:nth-child(3) { order: 5; } table.event_table td:nth-child(3) { order: 6; }

  .fsr-ad { padding: 0 0.75rem; }
  .fsr-foot-in { padding: 1.375rem 1rem 1.75rem; }
  .fsr-foot-copy { margin-left: 0; }
}

/* телефон горизонтально: компактная шапка, чтобы оставалось место под результаты */
@media (max-height: 500px) and (max-width: 1100px) {
  #title { height: auto; min-height: 0; padding: 0.75rem 4.375rem 0.75rem 9.375rem; }
  #title h3 { display: none; }
  #title h1 { font-size: 1.25rem; }
  .fsr-h-tag { font-size: 0.625rem; padding: 0.1875rem 0.5rem; vertical-align: 0.25rem; }
  .fsr-h-round { font-size: 1.5rem; }
  #cfrwpng { top: 0.75rem; left: 1rem; height: 2.375rem; }
  #title::after { width: 3.5rem; }
  .fsr-partners.fsr-partners-row { padding: 0.25rem 1rem; }
  .fsr-partners-row .fsr-partner { height: 1.875rem; }
  .fsr-partners-row .fsr-partner img { max-height: 1.5rem; }
  .fsr-nav { height: 2.75rem; }
  .fsr-home { height: 2rem; }
}

/* =========================== ЭКРАН В ЗАЛЕ (?tv, /live/1/ …) =========================== */
.fsr-tv body { overflow: hidden; }
.fsr-tv .fsr-nav, .fsr-tv .fsr-partners-row, .fsr-tv .fsr-foot, .fsr-tv .fsr-ad { display: none !important; }
.fsr-tv #title { height: 4.5rem; padding-left: 12rem; }
.fsr-tv #title .fsr-partners { display: flex !important; flex: 0 1 48%; max-width: 48%; min-width: 5rem;}
!.fsr-tv #title .fsr-partner { flex: 1 1 0; min-width: 5rem;}
!.fsr-tv #title .fsr-partner img { max-width: 100%;}
.fsr-tv #cfrwpng { top: 0.75rem; left: 1.5rem; height: 3rem; }
.fsr-tv .fsr-h-tag { font-size: 0.875rem; margin-bottom: 0.125rem; }
.fsr-tv .fsr-h-round, .fsr-tv .fsr-h-round.is-long { font-size: 1.625rem; }
.fsr-tv .fsr-scroll { max-width: none; margin-top: 0.5rem; padding: 0 1rem; }
.fsr-tv table.fsr-proto { width: auto; zoom: 1 !important; }
.fsr-tv table.fsr-proto td { height: var(--tv-row, 2.5rem); padding-top: 0; padding-bottom: 0; font-size: calc(var(--tv-row, 2.5rem) * .42); }
.fsr-tv table.fsr-proto td.rank, .fsr-tv table.fsr-proto td.fsr-total { font-size: calc(var(--tv-row, 2.5rem) * .55); }
.fsr-tv table.fsr-proto td.name { font-size: calc(var(--tv-row, 2.5rem) * .46); }
.fsr-tv table.fsr-proto td.command { font-size: calc(var(--tv-row, 2.5rem) * .3); }
.fsr-tv table.fsr-proto td.route div { height: calc(var(--tv-row, 2.5rem) * .82); width: calc(var(--tv-row, 2.5rem) * 1.1); line-height: calc(var(--tv-row, 2.5rem) * .41); font-size: calc(var(--tv-row, 2.5rem) * .3); }
.fsr-tv tr.fsr-cut td { height: auto; }
.fsr-tv .fsr-br { margin-top: 0.75rem; }

@media print {
  .fsr-nav, .fsr-foot { display: none; }
  body { background: #fff !important; }
}


/* раунды на одной странице (сетка скорости 1/4 · 1/2 · финал) */
.fsr-tab.is-here { color: var(--fsr-ink); border-bottom-color: rgba(235,55,40,.3); }
table.fsr-proto td.name.is-short { white-space: nowrap; max-width: none; }
