/* PRFL — Premium Racing Formula League
   Язык: телеграфика F1 — скошенные панели, тайминг-башня, узкие жирные цифры.
   Светлая тема: белый + красный. Тёмная: тёмно-красная. */

@import url('fonts.css');

:root {
  --f-display: var(--f-all); --f-cond: var(--f-all); --f-body: var(--f-all);
  --f-all: 'Montserrat', system-ui, sans-serif;
  --skew: -14deg;
  --bar-h: 64px;

  --bg: #ffffff;
  --bg-2: #f5f5f7;
  --bg-3: #e9e9ee;
  --surface: #ffffff;
  --line: #e3e3e9;
  --line-strong: #c9c9d2;
  --grid: rgba(15, 15, 20, .045);
  --text: #0f0f14;
  --text-2: #3a3a44;
  --muted: #6b6b76;
  --ink: #0f0f14;
  --on-ink: #ffffff;
  --red: #e10600;
  --red-2: #b30500;
  --red-soft: rgba(225, 6, 0, .08);
  --red-glow: rgba(225, 6, 0, .35);
  --green: #0c9a53;
  --gold: #c99400;
  color-scheme: light;
}
:root[data-theme="dark"] {
  --bg: #0d0508;
  --bg-2: #140a0e;
  --bg-3: #1f0e14;
  --surface: #170a0f;
  --line: #341420;
  --line-strong: #4f1c2a;
  --grid: rgba(255, 70, 90, .06);
  --text: #f8eef0;
  --text-2: #dcc3c9;
  --muted: #a7828b;
  --ink: #1d0b11;
  --on-ink: #ffffff;
  --red: #ff2340;
  --red-2: #ff5468;
  --red-soft: rgba(255, 35, 64, .14);
  --red-glow: rgba(255, 35, 64, .5);
  --green: #2fd07a;
  --gold: #ffc531;
  color-scheme: dark;
}

/* ---------- база ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font: 400 16px/1.5 var(--f-body); color: var(--text);
  background-color: var(--bg);
  background-image:
    repeating-linear-gradient(0deg, transparent 0 47px, var(--grid) 47px 48px),
    repeating-linear-gradient(90deg, transparent 0 47px, var(--grid) 47px 48px);
  overflow-x: hidden; min-height: 100vh;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { margin: 0; font-family: var(--f-display); line-height: 1.05; text-transform: uppercase; }
p { margin: 0; }
::selection { background: var(--red); color: #fff; }
.container { width: min(1360px, 100% - 32px); margin-inline: auto; }
@media (min-width: 900px) { .container { width: min(1360px, 100% - 64px); } }
.muted { color: var(--muted); }
.cond { font-family: var(--f-cond); }
.flag { width: 24px; height: 18px; object-fit: cover; border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,.25); }

/* кнопки — скошенные */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 44px; padding: 0 22px; border: 2px solid transparent;
  font: 700 14px var(--f-cond); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap;
  transform: skewX(-12deg); transition: background .2s, color .2s, border-color .2s, transform .15s, box-shadow .2s;
}
.btn > * { transform: skewX(12deg); }
.btn:hover { transform: skewX(-12deg) translateY(-2px); }
.btn:active { transform: skewX(-12deg) translateY(0); }
.btn-red { background: var(--red); color: #fff; border-color: var(--red); box-shadow: 0 8px 22px var(--red-glow); }
.btn-red:hover { background: var(--red-2); border-color: var(--red-2); }
.btn-ink { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.btn-line { background: transparent; color: var(--text); border-color: var(--text); }
.btn-line:hover { background: var(--text); color: var(--bg); }
.btn-sm { height: 36px; padding: 0 16px; font-size: 13px; }
.btn svg { width: 16px; height: 16px; }

/* ---------- смена темы: светофор + косой вайп ---------- */
html.theme-fade, html.theme-fade *, html.theme-fade *::before, html.theme-fade *::after {
  transition: background-color .5s ease, color .5s ease, border-color .5s ease !important;
}
::view-transition-old(root), ::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
::view-transition-old(root) { z-index: 1; }
::view-transition-new(root) { z-index: 2; }
.wipe-band {
  position: fixed; top: -10vh; left: 0; height: 120vh; width: 16vw; min-width: 90px; z-index: 10000; pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--red) 35%, var(--red) 65%, transparent);
  box-shadow: 0 0 60px 10px var(--red-glow);
  transform: skewX(var(--skew)) translateX(-40vw);
  view-transition-name: wipe-band;
}
::view-transition-new(wipe-band), ::view-transition-old(wipe-band) { animation: none; }

.lights {
  display: flex; align-items: center; gap: 5px; height: 36px; padding: 0 10px;
  background: #101014; border: 1px solid #2c2c33; border-radius: 6px;
  box-shadow: inset 0 2px 6px #000, 0 2px 0 #000;
  transform: skewX(-12deg);
}
.lights i { width: 12px; height: 12px; border-radius: 50%; background: #2a2a30; box-shadow: inset 0 1px 2px #000; transition: background .06s, box-shadow .06s; transform: skewX(12deg); }
.lights i.on { background: #ff1e1e; box-shadow: 0 0 10px 2px rgba(255, 30, 30, .85), inset 0 0 3px #fff6; }
.lights:hover { border-color: var(--red); }

/* ---------- верхняя полоса и бар ---------- */
.topbar { background: var(--red); color: #fff; height: 30px; font: 700 12px/1 var(--f-cond); letter-spacing: .14em; text-transform: uppercase; }
.topbar .container { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.topbar .live { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; overflow: hidden; }
.topbar .live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #fff; animation: blink 1.4s infinite; }
@keyframes blink { 50% { opacity: .25; } }
.topbar .links { display: none; gap: 18px; }
.topbar .links a { opacity: .85; } .topbar .links a:hover { opacity: 1; text-decoration: underline; }
@media (min-width: 720px) { .topbar .links { display: flex; } }

.bar { position: sticky; top: 0; z-index: 100; background: var(--bg); border-bottom: 2px solid var(--text); }
.bar .container { display: flex; align-items: stretch; height: var(--bar-h); gap: 8px; }
.brand { display: flex; align-items: center; gap: 12px; flex-shrink: 0; padding-right: 8px; }
.brand img { height: 52px; width: auto; }
.brand .name { display: none; font: 700 11px/1.25 var(--f-cond); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
@media (min-width: 1200px) { .brand .name { display: block; } }
/* класс вешает navFade(), когда пункты меню не влезли: название лиги уступает им место */
.bar.tight .brand .name { display: none; }
.nav { display: flex; align-items: stretch; min-width: 0; margin-left: 8px; overflow-x: auto; scrollbar-width: none; }
/* класс вешает app.js, когда пункты реально не влезли: обрез справа говорит «меня можно листать» */
.nav.scroll { mask-image: linear-gradient(90deg, #000 calc(100% - 30px), transparent);
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 30px), transparent); }
.nav.scroll.at-end { mask-image: none; -webkit-mask-image: none; }
.nav::-webkit-scrollbar { display: none; }
.nav a { position: relative; display: flex; align-items: center; padding: 0 clamp(9px, 1vw, 16px);
  font: 700 clamp(13px, 1.05vw, 15px) var(--f-cond); letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-2); white-space: nowrap; }
.nav a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -2px; height: 4px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.nav a:hover { color: var(--text); }
.nav a:hover::after, .nav a.active::after { transform: scaleX(1); }
.nav a.active { color: var(--red); }
.bar-right { margin-left: auto; display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
@media (max-width: 899px) {
  .bar .container { flex-wrap: wrap; height: auto; }
  .brand { height: var(--bar-h); }
  .bar-right { height: var(--bar-h); }
  .nav { order: 3; width: 100%; height: 42px; margin: 0 -16px; padding: 0 8px; border-top: 1px solid var(--line); }
  .nav a { font-size: 14px; padding: 0 12px; }
}
@media (max-width: 520px) { .bar-right .btn span { display: none; } .bar-right .btn { padding: 0 12px; } }

/* ---------- гоночный уик-энд (шапка главной) ---------- */
.weekend { position: relative; overflow: hidden; border-bottom: 2px solid var(--text); background: var(--bg-2); }
.weekend::before { content: ""; position: absolute; top: -20%; bottom: -20%; left: 38%; width: 22%; background: var(--red-soft); transform: skewX(var(--skew)); }
.weekend::after { content: ""; position: absolute; top: -20%; bottom: -20%; left: 63%; width: 6px; background: var(--red); transform: skewX(var(--skew)); opacity: .9; }
.weekend .container { position: relative; z-index: 1; display: grid; gap: 28px; padding: 32px 0 36px; align-items: center; }
@media (min-width: 1000px) { .weekend .container { grid-template-columns: auto 1fr auto; gap: 44px; padding: 40px 0 44px; } }
.weekend .round { font: 800 clamp(96px, 15vw, 190px)/.82 var(--f-cond); letter-spacing: -.03em; color: var(--red); }
.weekend .round small { display: block; font: 700 13px var(--f-cond); letter-spacing: .3em; color: var(--muted); margin-bottom: 6px; }
.weekend h1 { font-size: clamp(28px, 4vw, 54px); font-weight: 700; font-style: italic; letter-spacing: -.01em; }
.weekend .gp-meta { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 14px; font: 600 14px var(--f-cond); letter-spacing: .1em; text-transform: uppercase; color: var(--text-2); }
.weekend .gp-meta span::before { content: "//"; color: var(--red); margin-right: 8px; }
.weekend .gp-meta span:first-child::before { content: none; }
.weekend .gp-flag { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; font: 700 13px var(--f-cond); letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }
.weekend .gp-flag img { width: 34px; height: 25px; }
.weekend .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }

.clock { background: var(--ink); color: var(--on-ink); padding: 18px 26px 14px; transform: skewX(-8deg); box-shadow: 0 24px 50px rgba(0,0,0,.25); }
.clock > * { transform: skewX(8deg); }
.clock .lbl { font: 700 11px var(--f-cond); letter-spacing: .3em; text-transform: uppercase; opacity: .6; margin-bottom: 6px; display: flex; justify-content: space-between; }
.clock .digits { display: flex; align-items: baseline; gap: 6px; font: 800 clamp(44px, 5vw, 64px)/1 var(--f-cond); font-variant-numeric: tabular-nums; }
.clock .digits b { min-width: 1.4ch; text-align: center; }
.clock .digits i { font-style: normal; opacity: .35; font-weight: 600; }
.clock .digits b.red { color: var(--red); }
.clock .units { display: flex; gap: 6px; font: 600 10px var(--f-cond); letter-spacing: .24em; text-transform: uppercase; opacity: .55; margin-top: 4px; }
.clock .units span { min-width: 1.4ch; text-align: center; flex: 1; }

/* ---------- сетка страницы: башня + контент ---------- */
.layout { display: grid; gap: 40px; padding: 36px 0 56px; }
@media (min-width: 1100px) { .layout { grid-template-columns: 340px minmax(0, 1fr); gap: 48px; align-items: start; } .tower-wrap { position: sticky; top: calc(var(--bar-h) + 16px); } }
.layout > * { min-width: 0; } /* лента календаря не должна распирать колонку */

.tower { background: var(--surface); border: 1px solid var(--line); box-shadow: 0 20px 50px rgba(0,0,0,.08); }
.tower-head { background: var(--ink); color: var(--on-ink); padding: 10px 14px; display: flex; justify-content: space-between; align-items: center; font: 700 13px var(--f-cond); letter-spacing: .18em; text-transform: uppercase; }
.tower-head span { opacity: .6; }
.trow { display: grid; grid-template-columns: 30px 4px 46px 1fr 44px 30px; gap: 10px; align-items: center; padding: 6px 12px 6px 10px; border-bottom: 1px solid var(--line); font-family: var(--f-cond); font-size: 17px; position: relative; transition: background .15s; }
.trow:last-child { border-bottom: 0; }
.trow:hover { background: var(--red-soft); }
.trow > * { position: relative; }
.trow .pos { font-weight: 800; text-align: center; color: var(--muted); height: 24px; line-height: 24px; }
.trow.p1 .pos, .trow.p2 .pos, .trow.p3 .pos { color: #fff; background: var(--text); }
.trow.p1 .pos { background: var(--red); }
:root[data-theme="dark"] .trow.p2 .pos, :root[data-theme="dark"] .trow.p3 .pos { color: var(--bg); }
.trow .tb { width: 4px; height: 24px; background: var(--c); }
.trow .code { font-weight: 800; letter-spacing: .08em; }
.trow .team { font: 500 12px var(--f-body); color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.trow .pts { font-weight: 800; text-align: right; color: var(--red); font-size: 18px; }
.trow .d { font-size: 12px; font-weight: 700; text-align: right; }
.d.up { color: var(--green); } .d.down { color: var(--red); } .d.same { color: var(--muted); opacity: .6; }
.tower-foot { padding: 10px 14px; border-top: 2px solid var(--text); display: flex; justify-content: space-between; align-items: center; font: 700 13px var(--f-cond); letter-spacing: .1em; text-transform: uppercase; }
.tower-foot a { color: var(--red); }
.tower-foot a:hover { text-decoration: underline; }

/* заголовки блоков: номер + название */
.h { display: flex; align-items: flex-end; gap: 14px; margin: 0 0 18px; padding-bottom: 10px; border-bottom: 2px solid var(--text); }
.h .idx { font: 800 34px/1 var(--f-cond); color: var(--red); }
.h h2 { font-size: 22px; font-weight: 700; font-style: italic; }
.h .more { margin-left: auto; font: 700 13px var(--f-cond); letter-spacing: .12em; text-transform: uppercase; color: var(--red); padding-bottom: 2px; white-space: nowrap; }
.h .more:hover { text-decoration: underline; }
.block { margin-bottom: 48px; }

/* лента календаря */
.strip { position: relative; display: flex; gap: 10px; overflow-x: auto; padding: 4px 2px 16px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.tile { flex: 0 0 210px; scroll-snap-align: start; position: relative; background: var(--surface); border: 1px solid var(--line); padding: 14px 18px 14px 16px; clip-path: polygon(0 0, 100% 0, calc(100% - 16px) 100%, 0 100%); transition: transform .2s; }
.tile:hover { transform: translateY(-3px); }
.tile .r { font: 800 34px/1 var(--f-cond); color: var(--line-strong); }
.tile.done .r { color: var(--text); }
.tile img { width: 28px; height: 21px; margin: 10px 0 8px; }
.tile b { display: block; font: 700 13px/1.2 var(--f-display); text-transform: uppercase; min-height: 32px; }
.tile span { display: block; font: 600 12px var(--f-cond); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-top: 4px; }
.tile .win { margin-top: 10px; display: flex; align-items: center; gap: 8px; font: 800 13px var(--f-cond); letter-spacing: .08em; }
.tile .win i { width: 4px; height: 16px; background: var(--c); }
.tile.next { background: var(--red); border-color: var(--red); color: #fff; box-shadow: 0 12px 30px var(--red-glow); }
.tile.next .r, .tile.next span { color: rgba(255,255,255,.75); }
.tile.next .win { color: #fff; }
.tile.next::after { content: "NEXT"; position: absolute; right: 22px; top: 12px; font: 800 11px var(--f-cond); letter-spacing: .3em; }

/* цифры */
.numbers { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 2px solid var(--text); border-bottom: 1px solid var(--line); }
@media (min-width: 760px) { .numbers { grid-template-columns: repeat(4, 1fr); } }
.numbers div { padding: 18px 14px 16px; border-right: 1px solid var(--line); }
.numbers div:last-child { border-right: 0; }
.numbers b { display: block; font: 800 56px/1 var(--f-cond); color: var(--red); letter-spacing: -.02em; }
.numbers span { display: block; margin-top: 6px; font: 700 11px var(--f-cond); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }

/* конструкторы — полосы */
.bars { display: grid; gap: 6px; }
.brow { display: grid; grid-template-columns: 30px 150px 1fr 54px; gap: 12px; align-items: center; font-family: var(--f-cond); }
.brow .pos { font-weight: 800; color: var(--muted); text-align: center; }
.brow .name { font-weight: 700; font-size: 16px; letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brow .track { height: 20px; background: var(--bg-3); clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%); }
.brow .fill { height: 100%; width: var(--w); background: var(--c); clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%); animation: grow 1.1s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes grow { from { width: 0; } }
.brow .pts { font-weight: 800; font-size: 18px; text-align: right; color: var(--red); }
@media (max-width: 560px) { .brow { grid-template-columns: 24px 96px 1fr 44px; } .brow .name { font-size: 14px; } }

/* новости — колонки */
.news { display: grid; gap: 28px; }
@media (min-width: 860px) { .news { grid-template-columns: 1.1fr 1fr; gap: 40px; } }
.lead { border-top: 4px solid var(--red); padding-top: 16px; }
.lead time, .nitem time { font: 700 13px var(--f-cond); letter-spacing: .14em; text-transform: uppercase; color: var(--red); }
.lead h3 { margin-top: 8px; font-size: clamp(22px, 2.4vw, 30px); font-weight: 700; font-style: italic; }
.lead p { margin-top: 12px; color: var(--text-2); font-size: 16px; }
.lead .tag { display: inline-block; margin-top: 14px; padding: 4px 10px; background: var(--text); color: var(--bg); font: 700 11px var(--f-cond); letter-spacing: .2em; text-transform: uppercase; }
.nlist { border-top: 1px solid var(--line); }
.nitem { display: grid; grid-template-columns: 96px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); transition: background .15s; }
.nitem:hover { background: var(--red-soft); }
.nitem h4 { font-size: 15px; font-weight: 700; }
.nitem p { font-size: 13px; color: var(--muted); margin-top: 4px; }

/* фичи — нумерованный список */
.feats { border-top: 2px solid var(--text); }
.feat { display: grid; grid-template-columns: 56px 1fr; gap: 10px 16px; padding: 16px 8px 16px 0; border-bottom: 1px solid var(--line); align-items: start; transition: background .15s, padding-left .2s; }
@media (min-width: 760px) { .feat { grid-template-columns: 64px 240px 1fr auto; align-items: center; } }
.feat:hover { background: var(--red-soft); padding-left: 8px; }
.feat .n { font: 800 34px/1 var(--f-cond); color: var(--red); }
.feat h3 { font-size: 16px; font-weight: 700; }
.feat p { font-size: 14px; color: var(--muted); grid-column: 2; }
@media (min-width: 760px) { .feat p { grid-column: auto; } }
.feat .tag { font: 800 11px var(--f-cond); letter-spacing: .24em; text-transform: uppercase; color: var(--red); border: 1.5px solid var(--red); padding: 3px 8px; justify-self: start; }

/* призыв */
.join { position: relative; overflow: hidden; background: var(--ink); color: var(--on-ink); border-top: 2px solid var(--text); }
.join::before { content: ""; position: absolute; top: 0; bottom: 0; left: -12%; width: 52%; background: var(--red); transform: skewX(var(--skew)); }
.join::after { content: ""; position: absolute; top: 0; bottom: 0; left: 44%; width: 10px; background: #fff; opacity: .15; transform: skewX(var(--skew)); }
.join .container { position: relative; display: grid; gap: 24px; padding: 56px 0; align-items: center; }
@media (min-width: 900px) { .join .container { grid-template-columns: 1fr 1fr; gap: 48px; padding: 64px 0; } }
.join h2 { font-size: clamp(28px, 4vw, 52px); font-weight: 700; font-style: italic; }
.join p { margin-top: 12px; opacity: .85; max-width: 520px; }
.join .actions { display: flex; flex-wrap: wrap; gap: 12px; }
.join .btn-line { color: #fff; border-color: #fff; } .join .btn-line:hover { background: #fff; color: var(--ink); }

/* подвал */
.footer { position: relative; overflow: hidden; border-top: 2px solid var(--text); padding: 40px 0 24px; background: var(--bg-2); }
.footer::after { content: "PRFL"; position: absolute; right: -8px; bottom: -40px; font: 800 220px/1 var(--f-cond); font-style: italic; color: transparent; -webkit-text-stroke: 1px var(--line-strong); pointer-events: none; }
.footer .container { position: relative; display: grid; gap: 24px; }
@media (min-width: 820px) { .footer .container { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer h4 { font: 700 12px var(--f-cond); letter-spacing: .22em; color: var(--muted); margin-bottom: 10px; }
.footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.footer li a { font: 600 15px var(--f-cond); letter-spacing: .06em; text-transform: uppercase; color: var(--text-2); }
.footer li a:hover { color: var(--red); }
.footer .about img { height: 56px; width: auto; }
.footer .about p { margin-top: 12px; color: var(--muted); font-size: 14px; max-width: 320px; }
.footer .bottom { grid-column: 1 / -1; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font: 600 12px var(--f-cond); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }

/* ---------- подстраницы ---------- */
.phead { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 28px; padding: 36px 0 22px; border-bottom: 2px solid var(--text); }
.phead .idx { font: 800 clamp(64px, 9vw, 110px)/.85 var(--f-cond); color: var(--red); letter-spacing: -.03em; }
.phead h1 { font-size: clamp(28px, 4vw, 48px); font-weight: 700; font-style: italic; }
.phead p { width: 100%; color: var(--text-2); max-width: 640px; }
.phead .kicker { font: 700 12px var(--f-cond); letter-spacing: .26em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.page { padding: 28px 0 56px; }

/* таблица (страница) */
.switch { display: inline-flex; border: 2px solid var(--text); margin-bottom: 20px; }
.switch button { border: 0; background: transparent; padding: 10px 18px; font: 700 14px var(--f-cond); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.switch button.active { background: var(--text); color: var(--bg); }
.panel { display: none; } .panel.active { display: block; }
.trow.big { grid-template-columns: 40px 5px 64px 1fr 64px 64px 64px 48px; font-size: 19px; padding: 9px 14px 9px 10px; }
.trow.big::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: var(--w); background: var(--red-soft); }
.trow.big .num { text-align: right; font-weight: 700; color: var(--text-2); }
.trow.big .pos { height: 28px; line-height: 28px; }
.trow.big .tb { height: 28px; }
.trow.head { background: var(--bg-2); font: 700 11px var(--f-cond); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.trow.head:hover { background: var(--bg-2); }
.trow.head .num, .trow.head .pts, .trow.head .d { text-align: right; color: var(--muted); font-size: 11px; }
@media (max-width: 720px) { .trow.big { grid-template-columns: 30px 4px 52px 1fr 48px 40px; font-size: 16px; } .trow.big .hide-sm { display: none; } }

/* календарь — таймлайн */
.tl { position: relative; margin-left: 8px; border-left: 3px solid var(--line-strong); }
.tli { position: relative; display: grid; grid-template-columns: 80px 1fr; gap: 6px 16px; padding: 18px 0 18px 26px; border-bottom: 1px solid var(--line); align-items: center; }
@media (min-width: 860px) { .tli { grid-template-columns: 120px 90px 1fr 150px 210px; gap: 20px; padding-left: 32px; } }
.tli::before { content: ""; position: absolute; left: -10px; top: 50%; width: 15px; height: 15px; border-radius: 50%; background: var(--bg); border: 3px solid var(--line-strong); transform: translateY(-50%); }
.tli.done::before { background: var(--text); border-color: var(--text); }
.tli.next::before { background: var(--red); border-color: var(--red); box-shadow: 0 0 0 6px var(--red-soft); }
.tli.next { background: linear-gradient(90deg, var(--red-soft), transparent 60%); }
.tli .date { font: 700 15px var(--f-cond); letter-spacing: .08em; text-transform: uppercase; }
.tli .date small { display: block; font-size: 12px; color: var(--muted); letter-spacing: .12em; }
.tli .r { font: 800 44px/1 var(--f-cond); color: var(--line-strong); }
.tli.done .r { color: var(--text); } .tli.next .r { color: var(--red); }
.tli .gp { display: flex; align-items: center; gap: 12px; grid-column: 1 / -1; }
@media (min-width: 860px) { .tli .gp { grid-column: auto; } }
.tli .gp b { display: block; font: 700 17px var(--f-display); text-transform: uppercase; }
.tli .gp span { font: 600 12px var(--f-cond); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.tli .laps { font: 700 14px var(--f-cond); letter-spacing: .1em; text-transform: uppercase; color: var(--text-2); }
.tli .res { display: flex; align-items: center; gap: 8px; font: 800 13px var(--f-cond); letter-spacing: .08em; }
.tli .res i { display: inline-grid; place-items: center; width: 22px; height: 22px; color: #fff; background: var(--c); font-style: normal; font-size: 11px; }
.tli .res .st { font-weight: 700; color: var(--muted); letter-spacing: .14em; text-transform: uppercase; }
.tli.next .res .st { color: var(--red); }

/* пилоты — номерные таблички */
.teamrow { display: flex; align-items: center; gap: 12px; margin: 22px 0 12px; font: 700 13px var(--f-cond); letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.teamrow i { width: 26px; height: 5px; background: var(--c); }
.teamrow b { color: var(--text); font-size: 16px; }
.teamrow span { margin-left: auto; color: var(--red); font-weight: 800; }
.teamblocks { display: grid; gap: 8px 40px; grid-template-columns: 1fr; }
@media (min-width: 1000px) { .teamblocks { grid-template-columns: 1fr 1fr; } }
.plates { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.plate { position: relative; overflow: hidden; background: var(--surface); border: 1px solid var(--line); padding: 16px 18px 14px; transition: transform .2s, box-shadow .2s; }
.plate:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(0,0,0,.12); }
.plate::before { content: ""; position: absolute; right: -34px; top: 0; bottom: 0; width: 72px; background: var(--c); transform: skewX(var(--skew)); }
.plate .no { font: 800 72px/.9 var(--f-cond); font-style: italic; letter-spacing: -.03em; }
.plate .code { position: absolute; right: 0; top: 0; padding: 6px 12px 6px 16px; background: var(--c); font: 800 14px var(--f-cond); letter-spacing: .14em; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.45); clip-path: polygon(10px 0, 100% 0, 100% 100%, 0 100%); }
.plate .nick { margin-top: 10px; display: flex; align-items: center; gap: 8px; font: 700 16px var(--f-display); text-transform: uppercase; }
.plate .nick img { width: 20px; height: 15px; }
.plate .team { font: 600 12px var(--f-cond); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.plate .p { margin-top: 10px; font: 800 13px var(--f-cond); letter-spacing: .12em; color: var(--red); }

/* регламент */
.reg { display: grid; gap: 32px; }
@media (min-width: 960px) { .reg { grid-template-columns: 250px 1fr; gap: 48px; align-items: start; } .reg-nav { position: sticky; top: calc(var(--bar-h) + 16px); } }
.reg-nav { display: none; border-top: 2px solid var(--text); }
@media (min-width: 960px) { .reg-nav { display: block; } }
.reg-nav a { display: flex; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); font: 700 14px var(--f-cond); letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); }
.reg-nav a b { color: var(--red); min-width: 26px; }
.reg-nav a:hover, .reg-nav a.active { color: var(--red); }
.rule { display: grid; grid-template-columns: 56px 1fr; gap: 12px; padding: 26px 0; border-bottom: 1px solid var(--line); scroll-margin-top: calc(var(--bar-h) + 20px); }
@media (min-width: 760px) { .rule { grid-template-columns: 80px 1fr; gap: 20px; } }
.rule .n { font: 800 40px/1 var(--f-cond); color: var(--red); }
.rule h2 { font-size: 20px; font-weight: 700; margin-bottom: 12px; }
.rule ol, .rule ul { margin: 0; padding-left: 20px; display: grid; gap: 8px; color: var(--text-2); }
.rule li::marker { color: var(--red); font-weight: 700; }
.rule table { width: 100%; border-collapse: collapse; margin-top: 6px; font-size: 14px; }
.rule th, .rule td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; }
.rule th { font: 700 11px var(--f-cond); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.penalty { display: inline-block; padding: 2px 8px; font: 700 12px var(--f-cond); letter-spacing: .08em; background: var(--red); color: #fff; transform: skewX(-10deg); }

/* появление */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .5s, transform .5s cubic-bezier(.2, .7, .2, 1); }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .001s !important; transition-duration: .001s !important; } .reveal { opacity: 1; transform: none; } }

/* ---------- LIVE: карта трассы + тайминг ---------- */
:root { --lv-bg: #ffffff; --lv-fg: #0f0f14; --lv-track: rgba(15,15,20,.13); --lv-dash: rgba(15,15,20,.55); --lv-line: #e3e3e9; --lv-muted: #6b6b76; }
:root[data-theme="dark"] { --lv-bg: #1d0b11; --lv-fg: #ffffff; --lv-track: rgba(255,255,255,.14); --lv-dash: rgba(255,255,255,.6); --lv-line: rgba(255,255,255,.1); --lv-muted: rgba(255,255,255,.5); }
.livebox { border-bottom: 2px solid var(--text); background: var(--lv-bg); color: var(--lv-fg); }
.livebox .container { display: grid; gap: 0; }
@media (min-width: 1000px) { .livebox .container { grid-template-columns: minmax(0, 1fr) 380px; } }
.live-map { position: relative; padding: 58px 24px 40px 0; }
.live-map svg { width: 100%; max-height: 400px; height: auto; display: block; margin: 0 auto; }
.live-map .track { fill: none; stroke: var(--lv-track); stroke-width: 14; stroke-linejoin: round; stroke-linecap: round; }
.live-map .track-in { fill: none; stroke: var(--lv-dash); stroke-width: 2; stroke-dasharray: 2 6; }
.live-map .sf { stroke: var(--red); stroke-width: 6; }
.live-map .car text { font: 800 9.5px var(--f-cond); fill: #fff; text-anchor: middle; letter-spacing: .05em; pointer-events: none; }
.live-map .car circle { stroke: var(--lv-bg); stroke-width: 1.5; }
.live-map .car.lead circle { stroke: var(--red); stroke-width: 2.5; }
.live-head { position: absolute; left: 0; top: 16px; display: flex; align-items: center; gap: 14px; font: 700 12px var(--f-cond); letter-spacing: .22em; text-transform: uppercase; }
.live-head .on { display: inline-flex; align-items: center; gap: 8px; background: var(--red); color: #fff; padding: 4px 10px; }
.live-head .on::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #fff; animation: blink 1s infinite; }
.live-head .lap { color: var(--lv-muted); }
.live-foot { position: absolute; left: 0; bottom: 12px; font: 600 11px var(--f-cond); letter-spacing: .16em; text-transform: uppercase; color: var(--lv-muted); }
.live-timing { border-left: 1px solid var(--lv-line); display: flex; flex-direction: column; }
.live-timing .lt-head { display: grid; grid-template-columns: 30px 4px 46px 1fr 62px 62px; gap: 10px; padding: 10px 12px; font: 700 10px var(--f-cond); letter-spacing: .2em; text-transform: uppercase; color: var(--lv-muted); border-bottom: 1px solid var(--lv-line); }
.lt-row { display: grid; grid-template-columns: 30px 4px 46px 1fr 62px 62px; gap: 10px; align-items: center; padding: 4px 12px; border-bottom: 1px solid var(--lv-line); font: 700 15px var(--f-cond); transition: background .3s; }
.lt-row .pos { text-align: center; color: var(--lv-muted); }
.lt-row:first-child .pos { background: var(--red); color: #fff; }
.lt-row .tb { width: 4px; height: 20px; background: var(--c); }
.lt-row .code { letter-spacing: .08em; }
.lt-row .nm { font: 500 12px var(--f-body); color: var(--lv-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lt-row .gap, .lt-row .int { text-align: right; font-variant-numeric: tabular-nums; }
.lt-row .gap { color: var(--red); } .lt-row .int { color: var(--lv-muted); font-weight: 600; }
.lt-row.up { background: rgba(47,208,122,.16); } .lt-row.down { background: rgba(255,35,64,.14); }
.lt-row .fl { color: #a855f7; }
.live-timing .lt-foot { margin-top: auto; padding: 10px 12px; font: 600 11px var(--f-cond); letter-spacing: .16em; text-transform: uppercase; color: var(--lv-muted); display: flex; justify-content: space-between; }

/* подиум последнего этапа */
.podium { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; align-items: end; padding-top: 20px; }
.podium .step { position: relative; background: var(--surface); border: 1px solid var(--line); border-top: 5px solid var(--c); padding: 14px 12px 12px; text-align: center; }
.podium .step.p1 { min-height: 150px; } .podium .step.p2 { min-height: 122px; } .podium .step.p3 { min-height: 104px; }
.podium .step .n { font: 800 44px/1 var(--f-cond); color: var(--line-strong); position: absolute; right: 10px; bottom: 6px; }
.podium .step.p1 .n { color: var(--red); }
.podium .step .code { font: 800 26px/1 var(--f-cond); letter-spacing: .06em; }
.podium .step .nick { font: 700 13px var(--f-display); text-transform: uppercase; margin-top: 4px; }
.podium .step .team { font: 600 11px var(--f-cond); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.podium .step .pt { display: inline-block; margin-top: 8px; padding: 2px 8px; background: var(--text); color: var(--bg); font: 800 12px var(--f-cond); letter-spacing: .12em; }
.podium-meta { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 12px; font: 600 13px var(--f-cond); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.podium-meta b { color: var(--text); }

/* форма: последние 5 гонок */
.form5 { display: inline-flex; gap: 3px; }
.form5 i { width: 18px; height: 18px; display: grid; place-items: center; font: 800 10px var(--f-cond); font-style: normal; background: var(--bg-3); color: var(--muted); }
.form5 i.w { background: var(--red); color: #fff; } .form5 i.pd { background: var(--text); color: var(--bg); } .form5 i.pt { background: var(--line-strong); color: var(--text); }
.trow.big .form5 { justify-self: end; }

/* график чемпионата */
.chart { background: var(--surface); border: 1px solid var(--line); padding: 16px 16px 8px; margin-bottom: 20px; }
.chart svg { width: 100%; max-height: 320px; height: auto; display: block; }
.chart .grid line { stroke: var(--line); stroke-width: 1; }
.chart .axis text { font: 700 11px var(--f-cond); fill: var(--muted); letter-spacing: .1em; }
.chart .ln { fill: none; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; stroke-dasharray: 2000; stroke-dashoffset: 2000; animation: draw 1.6s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.chart .lbl { font: 800 12px var(--f-cond); letter-spacing: .08em; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; padding-top: 8px; font: 700 12px var(--f-cond); letter-spacing: .1em; }
.chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.chart-legend i { width: 14px; height: 4px; background: var(--c); }

/* 3D-наклон табличек пилотов */
.plate { transform-style: preserve-3d; will-change: transform; }
.plate.tilt { transition: transform .08s; }

/* ---------- скругления: заказчику сайт показался «квадратным» ---------- */
:root { --r: 16px; --r-sm: 10px; --r-xs: 6px; }
.btn { border-radius: var(--r-sm); transform: skewX(-6deg); }
.btn > * { transform: skewX(6deg); }
.btn:hover { transform: skewX(-6deg) translateY(-2px); }
.btn:active { transform: skewX(-6deg) translateY(0); }
.lights { border-radius: 999px; transform: none; padding: 0 12px; }
.lights i { transform: none; }
.topbar .links a, .topbar .live { border-radius: 999px; }
.live-head .on { border-radius: 999px; }
.bar { border-bottom-width: 1px; border-color: var(--line); }
.nav a::after { border-radius: 3px 3px 0 0; }

.weekend::before { border-radius: 40px; }
.weekend::after { border-radius: 6px; }
.clock { border-radius: var(--r); transform: none; }
.clock > * { transform: none; }

.livebox { border-bottom: 1px solid var(--line); }
.livebox .container { border-radius: 0; }
.live-timing { border-left: 0; }
@media (min-width: 1000px) { .live-timing { border-left: 1px solid var(--lv-line); } }
.lt-row:first-child .pos, .trow.p1 .pos, .trow.p2 .pos, .trow.p3 .pos { border-radius: var(--r-xs); }
.lt-row .tb, .trow .tb { border-radius: 2px; }
.live-map .car circle { rx: 8; }

.tower { border-radius: var(--r); overflow: hidden; }
.tower-head { border-radius: 0; }
.tower-foot { border-top-width: 1px; border-color: var(--line); }
.h { border-bottom-width: 1px; border-color: var(--line-strong); }
.tile { clip-path: none; border-radius: var(--r-sm); }
.tile.next::after { right: 14px; }
.numbers { border-radius: var(--r-sm); overflow: hidden; border: 1px solid var(--line); border-top: 1px solid var(--line); background: var(--surface); }
.numbers div { padding: 20px 18px 18px; }
.brow .track, .brow .fill { clip-path: none; border-radius: 999px; }
.brow .track { overflow: hidden; }
.lead { border-top: 0; border-left: 4px solid var(--red); border-radius: 4px; padding: 4px 0 4px 18px; }
.lead .tag { border-radius: 999px; }
.nlist { border-top: 0; }
.nitem { border-radius: var(--r-sm); padding: 12px 12px; margin: 0 -12px; border-bottom: 0; }
.nitem + .nitem { margin-top: 2px; }
.feats { border-top: 0; display: grid; gap: 8px; }
.feat { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 14px 16px; background: var(--surface); }
.feat:hover { padding-left: 16px; border-color: var(--red); }
.feat .tag { border-radius: 999px; }
.join { border-top: 0; }
.join .container { border-radius: 0; }
.join::before { border-radius: 0 60px 60px 0; }
.footer { border-top: 1px solid var(--line); }

.phead { border-bottom: 1px solid var(--line-strong); }
.switch { border-radius: 999px; overflow: hidden; border-width: 1px; border-color: var(--line-strong); }
.switch button { border-radius: 999px; }
.trow.big { border-radius: 0; }
.trow.big::before { border-radius: 0 999px 999px 0; }
.chart { border-radius: var(--r); }
.form5 i { border-radius: 4px; }
.tli { border-radius: 0; }
.tli.next { border-radius: var(--r-sm); }
.tli .res i { border-radius: var(--r-xs); }
.tli::before { border-radius: 50%; }
.plate { border-radius: var(--r); }
.plate::before { transform: skewX(-8deg); }
.plate .code { clip-path: none; border-radius: 0 var(--r) 0 var(--r-sm); }
.podium .step { border-radius: var(--r-sm); border-top-width: 4px; }
.podium .step .pt { border-radius: 999px; }
.reg-nav { border-top: 0; }
.reg-nav a { border-radius: var(--r-xs); padding: 9px 10px; border-bottom: 0; }
.rule { border-bottom: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 24px; margin-bottom: 14px; }
@media (min-width: 760px) { .rule { padding: 26px 28px; } }
.rule .n { border-radius: 0; }
.penalty { transform: none; border-radius: 999px; padding: 2px 10px; }
.rule table { border-radius: var(--r-xs); overflow: hidden; }
.teamrow i { border-radius: 3px; }
.flag { border-radius: 4px; }
/* мягкие фоны вместо клиньев */
.weekend::before { left: 42%; width: 34%; top: -30%; bottom: -30%; transform: none; border-radius: 50%; filter: blur(48px); opacity: .9; }
.weekend::after { display: none; }
.join::before { transform: none; left: -8%; width: 50%; border-radius: 0 999px 999px 0; }
.join::after { display: none; }
body { background-image: none; } /* клетчатая подложка тоже «квадратила» */

/* ---------- анимации ---------- */
@keyframes rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes slide-l { from { opacity: 0; transform: translateX(-60px) skewX(-6deg); } 60% { transform: translateX(6px) skewX(0); } to { opacity: 1; transform: none; } }
@keyframes pop { from { opacity: 0; transform: scale(.92) translateY(10px); } 70% { transform: scale(1.02); } to { opacity: 1; transform: none; } }
@keyframes shine { from { transform: translateX(-150%) skewX(-20deg); } to { transform: translateX(250%) skewX(-20deg); } }
@keyframes breathe { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-3%, 4%) scale(1.08); } }
@keyframes roll-in { from { transform: translateY(-60%); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes glow { 0%, 100% { box-shadow: 0 12px 30px var(--red-glow); } 50% { box-shadow: 0 12px 44px var(--red-glow), 0 0 0 4px var(--red-soft); } }

/* первый экран — хореография при загрузке */
.weekend .round { animation: slide-l .8s cubic-bezier(.2, .8, .2, 1) both; }
.weekend .gp > * { animation: rise .7s cubic-bezier(.2, .8, .2, 1) both; }
.weekend .gp > :nth-child(1) { animation-delay: .15s; } .weekend .gp > :nth-child(2) { animation-delay: .25s; }
.weekend .gp > :nth-child(3) { animation-delay: .35s; } .weekend .gp > :nth-child(4) { animation-delay: .45s; }
.clock { animation: pop .8s cubic-bezier(.2, .8, .2, 1) .35s both; }
.weekend::before { animation: breathe 14s ease-in-out infinite; }
.livebox .container { animation: rise .8s cubic-bezier(.2, .8, .2, 1) .5s both; }

/* отсчёт: цифра прокатывается сверху при смене */
.clock .digits b { position: relative; overflow: hidden; }
.clock .digits b.roll { animation: roll-in .35s cubic-bezier(.2, .8, .2, 1); }

/* каскад: элементы с --i появляются по очереди, когда родитель получил .in */
.stagger > * { opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .55s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i, 0) * 45ms); }
.stagger.in > * { opacity: 1; transform: none; }
.stagger.slide > * { transform: translateX(-24px); }
.stagger.slide.in > * { transform: none; }

/* заголовки блоков: линия вырастает слева */
.h { position: relative; border-bottom-color: transparent !important; }
.h::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--line-strong); transform: scaleX(0); transform-origin: left; transition: transform .8s cubic-bezier(.2, .8, .2, 1); }
.h.in::after { transform: scaleX(1); }
.h .idx { display: inline-block; transition: transform .6s cubic-bezier(.2, .8, .2, 1), opacity .4s; transform: translateX(-12px); opacity: 0; }
.h.in .idx { transform: none; opacity: 1; }

/* кнопки: блик при наведении */
.btn { position: relative; overflow: hidden; }
.btn::after { content: ""; position: absolute; top: -20%; bottom: -20%; left: 0; width: 40%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent); transform: translateX(-150%) skewX(-20deg); pointer-events: none; }
.btn:hover::after { animation: shine .7s ease; }
.btn-line::after { background: linear-gradient(90deg, transparent, var(--red-soft), transparent); }

/* плитка следующего этапа — дышит */
.tile.next { animation: glow 2.6s ease-in-out infinite; }

/* башня: при наведении полоса команды растёт */
.trow .tb { transition: width .25s cubic-bezier(.2, .8, .2, 1); }
.trow:hover .tb { width: 10px; }
.trow .code { transition: transform .25s; }
.trow:hover .code { transform: translateX(4px); }

/* полосы конструкторов — заполняются, когда доехали до них */
.bars .fill { animation: none; width: 0; transition: width 1.1s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i, 0) * 60ms); }
.bars.in .fill { width: var(--w); }
.trow.big::before { width: 0; transition: width 1s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i, 0) * 30ms); }
.in .trow.big::before, .trow.big.in::before { width: var(--w); }

/* подиум: ступени вырастают */
.podium .step { transform-origin: bottom; }
.stagger.podium > .step { transform: translateY(30px) scaleY(.9); }
.stagger.podium.in > .step { transform: none; }
.stagger.podium > .p1 { --i: 2; } .stagger.podium > .p2 { --i: 1; } .stagger.podium > .p3 { --i: 3; }
.podium .step.p1 { animation: glow 3s ease-in-out infinite; }

/* шапка сжимается при прокрутке */
.bar { transition: box-shadow .3s, background .3s; }
.bar .container, .brand img, .brand { transition: height .3s cubic-bezier(.2, .8, .2, 1); }
.bar.scrolled { box-shadow: 0 10px 30px rgba(0,0,0,.12); }
.bar.scrolled .container { height: 54px; }
.bar.scrolled .brand img { height: 40px; }
@media (max-width: 899px) { .bar.scrolled .container { height: auto; } }

/* карта: шлейфы машин */
.live-map .trail { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; opacity: .45; }

/* параллакс большого номера */
.weekend .round { will-change: transform; }

@media (prefers-reduced-motion: reduce) {
  .stagger > *, .h .idx { opacity: 1 !important; transform: none !important; transition: none !important; }
  .h::after { transform: none; } .bars .fill { width: var(--w); }
}

/* ---------- призыв: карточка вместо полукруга ---------- */
.join { background: transparent; color: inherit; border: 0; }
.join::before, .join::after { display: none; }
.join .container { display: block; padding: 8px 0 56px; }
.join-card {
  position: relative; overflow: hidden; border-radius: 24px; padding: 48px 40px;
  background: linear-gradient(120deg, var(--red) 0%, #9c0a1c 100%); color: #fff;
  display: grid; gap: 28px; align-items: center; box-shadow: 0 30px 70px var(--red-glow);
}
@media (min-width: 900px) { .join-card { grid-template-columns: 1.3fr auto; padding: 56px 64px; } }
.join-card::before { content: ""; position: absolute; right: -8%; top: -60%; width: 46%; height: 220%; background: rgba(255,255,255,.07); transform: rotate(18deg); border-radius: 40%; pointer-events: none; }
.join-card h2 { font-size: clamp(26px, 3.4vw, 44px); font-weight: 700; font-style: italic; color: #fff; }
.join-card p { margin-top: 12px; opacity: .9; max-width: 560px; }
.join-card .actions { display: flex; flex-wrap: wrap; gap: 12px; position: relative; }
.btn-white { background: #fff; color: var(--red-2); border-color: #fff; }
.btn-white:hover { background: #ffe9e7; }
.join-card .btn-line { color: #fff; border-color: rgba(255,255,255,.7); }
.join-card .btn-line:hover { background: rgba(255,255,255,.15); color: #fff; border-color: #fff; }

/* ---------- одна гарнитура: подгонка после отказа от Condensed ---------- */
h1, h2, h3, h4 { letter-spacing: -.01em; }
.weekend .round { font-size: clamp(88px, 12.5vw, 160px); font-weight: 900; letter-spacing: -.05em; }
.weekend h1 { font-weight: 800; }
.clock .digits { font-size: clamp(40px, 4.4vw, 56px); font-weight: 800; letter-spacing: -.03em; }
.numbers b { font-size: 48px; font-weight: 900; letter-spacing: -.04em; }
.h .idx, .phead .idx, .rule .n, .tile .r, .tli .r { font-weight: 900; letter-spacing: -.04em; }
.phead .idx { font-size: clamp(56px, 8vw, 96px); }
.plate .no { font-weight: 900; letter-spacing: -.05em; font-size: 64px; }
.podium .step .code { font-weight: 900; letter-spacing: 0; }
.trow { grid-template-columns: 30px 4px 50px 1fr 46px 32px; font-size: 16px; }
.trow.big { grid-template-columns: 40px 5px 66px 1fr 64px 64px 64px 48px; font-size: 17px; }
.lt-row, .live-timing .lt-head { grid-template-columns: 30px 4px 50px 1fr 62px 62px; }
.lt-row { font-size: 14px; }
.topbar, .nav a, .btn, .h .more, .eyebrow, .tower-head, .tower-foot, .tile span, .tile .win, .numbers span, .brow, .lead time, .nitem time,
.phead .kicker, .switch button, .tli .date, .tli .laps, .tli .res, .teamrow, .plate .code, .plate .team, .plate .p, .podium .step .team, .podium .step .pt, .podium-meta,
.reg-nav a, .rule th, .penalty, .footer h4, .footer li a, .footer .bottom, .live-head, .live-foot, .lt-head, .lt-foot, .chart .axis text, .chart .lbl, .chart-legend, .form5 i, .badge, .weekend .gp-meta, .weekend .gp-flag, .weekend .round small, .clock .lbl, .clock .units { letter-spacing: .06em; }
.nav a { font-size: 14px; }
.brand .name { letter-spacing: .1em; }

/* ?anim=0 — без входных анимаций (для скриншотов и слабых машин) */
.no-anim *, .no-anim *::before, .no-anim *::after { animation: none !important; }
.no-anim .stagger > *, .no-anim .h .idx, .no-anim .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
.no-anim .h::after { transform: none; }
.no-anim .bars .fill, .no-anim .trow.big::before { width: var(--w); transition: none; }

/* выбор гарнитуры (админка → настройки → шрифт) */
:root[data-font="exo"] { --f-all: 'Exo 2', system-ui, sans-serif; }
:root[data-font="inter"] { --f-all: 'Inter', system-ui, sans-serif; }
:root[data-font="montserrat"] { --f-all: 'Montserrat', system-ui, sans-serif; }

/* ---------- регистрация ---------- */
.reg-page { display: grid; gap: 28px; }
@media (min-width: 1000px) { .reg-page { grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; } }
.reg-form, .reg-done { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 28px; }
@media (min-width: 760px) { .reg-form, .reg-done { padding: 36px; } }
.reg-grid { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .reg-grid { grid-template-columns: 1fr 1fr; } }
.reg-grid .wide { grid-column: 1 / -1; }
.fld { display: grid; gap: 6px; }
.fld > span { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.fld input, .fld select, .fld textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--bg); color: var(--text); font: 500 15px var(--f-body); transition: border-color .2s, box-shadow .2s; }
.fld input:focus, .fld select:focus, .fld textarea:focus { outline: 0; border-color: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }
.fld textarea { min-height: 110px; resize: vertical; }
.seg { display: flex; gap: 6px; padding: 4px; background: var(--bg-3); border-radius: var(--r-sm); }
.seg label { flex: 1; }
.seg input { position: absolute; opacity: 0; pointer-events: none; }
.seg i { display: block; text-align: center; padding: 10px 8px; border-radius: 8px; font: 700 13px var(--f-body); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); cursor: pointer; transition: background .2s, color .2s, box-shadow .2s; }
.seg input:checked + i { background: var(--surface); color: var(--red); box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.chk { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; color: var(--text-2); cursor: pointer; }
.chk input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--red); flex-shrink: 0; }
.chk a { color: var(--red); text-decoration: underline; }
.reg-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 24px; }
.reg-hint { font-size: 13px; color: var(--muted); }
.reg-hint.err { color: var(--red); font-weight: 700; }
.reg-ok .n { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--red); color: #fff; font: 800 13px var(--f-body); letter-spacing: .12em; margin-bottom: 14px; }
.reg-ok h2 { font-size: clamp(22px, 3vw, 32px); font-weight: 800; font-style: italic; }
.reg-ok p { margin-top: 12px; color: var(--text-2); max-width: 560px; }
.reg-side { display: grid; gap: 12px; }
.reg-step { display: grid; grid-template-columns: 48px 1fr; gap: 12px; padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-sm); }
.reg-step b { font-size: 28px; font-weight: 900; color: var(--red); letter-spacing: -.04em; line-height: 1; }
.reg-step h3 { font-size: 15px; font-weight: 800; }
.reg-step p { font-size: 13px; color: var(--muted); margin-top: 4px; }

/* ---------- карточка команды: основа + резерв + руководитель ---------- */
.teamblocks { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 1000px) { .teamblocks { grid-template-columns: 1fr 1fr; gap: 18px; } }
.teamcard { position: relative; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.tc-head { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.tc-head i { width: 6px; align-self: stretch; min-height: 34px; background: var(--c); border-radius: 3px; }
.tc-head b { display: block; font: 800 18px var(--f-display); text-transform: uppercase; letter-spacing: .02em; }
.tc-head span { font: 600 11px var(--f-cond); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.tc-pts { margin-left: auto; font: 900 28px var(--f-cond); color: var(--red); line-height: 1; letter-spacing: -.02em; }
.tc-pts small { display: block; font: 700 10px var(--f-cond); letter-spacing: .16em; color: var(--muted); }
.tc-sec { padding: 14px 20px 4px; }
.tc-lbl { display: block; margin-bottom: 10px; font: 800 10px var(--f-cond); letter-spacing: .26em; text-transform: uppercase; color: var(--muted); }
.teamcard .plates { grid-template-columns: 1fr 1fr; gap: 10px; }
.teamcard .plate { min-height: 0; padding: 14px 16px 12px; }
.teamcard .plate .no { font-size: 52px; }
.teamcard .plate .nick { font-size: 14px; margin-top: 6px; }
.teamcard .plate .p { margin-top: 6px; font-size: 12px; }
.subs { display: grid; gap: 6px; }
.sub { display: grid; grid-template-columns: 4px 34px 1fr auto; gap: 10px; align-items: center; padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--bg-2); transition: border-color .2s, transform .15s; }
.sub:hover { border-color: var(--c); transform: translateX(2px); }
.sub i { align-self: stretch; background: var(--c); border-radius: 2px; }
.sub .no { font: 900 18px var(--f-cond); color: var(--muted); text-align: center; }
.sub .nick { display: flex; align-items: center; gap: 8px; font: 700 13px var(--f-display); text-transform: uppercase; }
.sub .nick img { width: 18px; height: 13px; border-radius: 3px; }
.sub .code { font: 800 12px var(--f-cond); letter-spacing: .12em; color: var(--muted); }
.tc-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding: 14px 20px; border-top: 1px solid var(--line); background: var(--bg-2); }
.tc-foot .tc-lbl { margin: 0; }
.tc-foot b { font: 800 15px var(--f-display); text-transform: uppercase; }
@media (max-width: 420px) { .teamcard .plates { grid-template-columns: 1fr; } }

/* ---------- таблица: горизонтальная прокрутка на узких экранах ---------- */
.tower { position: relative; }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.table-scroll > .trow { min-width: 560px; }
.swipe-hint { display: none; align-items: center; gap: 8px; padding: 8px 14px; font: 700 11px var(--f-cond); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--line); }
.swipe-hint::after { content: "→"; animation: nudge 1.4s ease-in-out infinite; }
@keyframes nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@media (max-width: 720px) { .swipe-hint { display: flex; } }
/* в прокручиваемой таблице показываем все колонки, ничего не прячем */
@media (max-width: 720px) {
  .table-scroll .trow.big { grid-template-columns: 40px 5px 64px 1fr 64px 64px 64px 48px; font-size: 17px; }
  .table-scroll .trow.big .hide-sm { display: block; }
}
.table-scroll > .trow { min-width: 720px; }

/* ---------- подвал: нормальная сетка и на телефоне ---------- */
.footer { padding: 36px 0 20px; }
.footer .container { gap: 28px 24px; grid-template-columns: 1fr 1fr; }
@media (min-width: 820px) { .footer .container { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 32px; } }
.footer .about { grid-column: 1 / -1; }
@media (min-width: 820px) { .footer .about { grid-column: auto; } }
.footer .about img { height: 48px; }
.footer .about p { margin-top: 10px; font-size: 13px; line-height: 1.5; max-width: 420px; }
.footer h4 { font-size: 11px; letter-spacing: .2em; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.footer ul { gap: 9px; }
.footer li a { font-size: 14px; letter-spacing: .04em; display: inline-block; }
.footer .bottom { margin-top: 8px; padding-top: 16px; flex-direction: column; align-items: flex-start; gap: 6px; font-size: 11px; }
@media (min-width: 640px) { .footer .bottom { flex-direction: row; align-items: center; justify-content: space-between; } }
.footer::after { font-size: 120px; bottom: -22px; right: -4px; opacity: .6; }
@media (min-width: 820px) { .footer::after { font-size: 200px; bottom: -36px; } }
.fld > span em { font-style: normal; text-transform: none; letter-spacing: 0; color: var(--muted); font-weight: 600; }

/* ---------- аккаунт в шапке ---------- */
.userchip { display: flex; align-items: center; gap: 10px; padding: 5px 14px 5px 5px; border: 1px solid var(--line-strong); border-radius: 999px; transition: border-color .2s, background .2s; }
.userchip:hover { border-color: var(--red); background: var(--red-soft); }
.userchip img, .userchip i { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.userchip i { display: grid; place-items: center; background: var(--red); color: #fff; font: 800 15px var(--f-body); font-style: normal; }
.userchip span { display: none; line-height: 1.15; }
@media (min-width: 640px) { .userchip span { display: block; } }
.userchip b { display: block; font: 700 13px var(--f-body); }
.userchip small { font: 600 10px var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

/* ---------- «сначала войди» ---------- */
.gate { text-align: center; padding: 48px 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.gate h2 { font-size: clamp(20px, 3vw, 28px); font-weight: 800; font-style: italic; }
.gate p { margin: 12px auto 22px; color: var(--muted); max-width: 460px; }
.gate .btn { margin-inline: auto; }

/* ---------- профиль, инвентарь, инциденты, магазин ---------- */
.pcard { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 22px; margin-bottom: 16px; }
@media (min-width: 760px) { .pcard { padding: 28px; } }
.pcard-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.pcard-head h3 { font-size: 16px; font-weight: 800; letter-spacing: .04em; }
.phead2 { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.phead2 img, .phead2 i { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.phead2 i { display: grid; place-items: center; background: var(--red); color: #fff; font: 900 26px var(--f-body); font-style: normal; }
.phead2 h2 { font-size: clamp(20px, 3vw, 28px); font-weight: 800; font-style: italic; }
.phead2 .btn { margin-left: auto; }
.ptags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; font-size: 13px; }
.tag-role { padding: 3px 10px; border-radius: 999px; font: 800 11px var(--f-body); letter-spacing: .1em; text-transform: uppercase; background: var(--bg-3); color: var(--text-2); }
.tag-role.tag-owner, .tag-role.tag-admin { background: var(--red); color: #fff; }
.tag-role.tag-director { background: var(--text); color: var(--bg); }
.tag-role.tag-pilot { background: var(--red-soft); color: var(--red); }
.tag-team { padding: 3px 10px; border-radius: 999px; font: 700 11px var(--f-body); letter-spacing: .08em; text-transform: uppercase; background: var(--c); color: #fff; }
.form-grid { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .form-grid { grid-template-columns: 1fr 1fr; } }
.form-grid .wide { grid-column: 1 / -1; }

.inv { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.inv-item { position: relative; overflow: hidden; padding: 16px; border-radius: var(--r-sm); border: 1px solid var(--line); background: linear-gradient(135deg, var(--bg-2), var(--surface)); }
.inv-item.used { opacity: .55; }
.inv-item .inv-kind { font: 800 10px var(--f-body); letter-spacing: .24em; text-transform: uppercase; color: var(--red); }
.inv-item b { display: block; margin: 6px 0 4px; font-size: 15px; }
.inv-item span { display: block; font-size: 13px; color: var(--text-2); }
.inv-item small { display: block; margin-top: 6px; font-size: 11px; }
.inv-item::after { content: ""; position: absolute; right: -30px; top: -30px; width: 90px; height: 90px; border-radius: 50%; background: var(--red); opacity: .10; }

.entry-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px 0; border-bottom: 1px solid var(--line); }
.entry-row:last-child { border-bottom: 0; }
.entry-row b { display: block; font-size: 15px; }
.entry-row span.muted { font-size: 13px; }

.inc-list { display: grid; gap: 12px; }
.inc { padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--bg-2); }
.inc header { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.inc header b { font-size: 14px; }
.inc header .muted { margin-left: auto; font-size: 12px; }
.inc-who { font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.inc p { font-size: 14px; color: var(--text-2); }
.inc-video { display: inline-block; margin-top: 8px; font-weight: 700; font-size: 13px; color: var(--red); }
.inc-verdict { margin-top: 10px; padding: 10px 12px; border-left: 3px solid var(--red); background: var(--red-soft); border-radius: 0 var(--r-xs) var(--r-xs) 0; font-size: 14px; }
.inc-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line-strong); }
.inc-form select, .inc-form input { flex: 1 1 150px; min-width: 0; }
.inc-form input[name="verdict"] { flex: 3 1 220px; }
.inc-form button { flex: 0 0 auto; }
@media (max-width: 560px) { .inc-form > * { flex: 1 1 100%; } }
.inc-form select, .inc-form input { padding: 9px 11px; border: 1px solid var(--line-strong); border-radius: var(--r-xs); background: var(--bg); color: var(--text); font: 500 14px var(--f-body); }

.shop { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.shop-item { overflow: hidden; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); transition: transform .2s, box-shadow .2s; }
.shop-item:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(0,0,0,.14); }
.shop-pic { display: grid; place-items: center; height: 150px; background: linear-gradient(135deg, #1b1b1f, #3a0d16); color: #fff; }
.shop-pic.ticket { background: linear-gradient(135deg, var(--red), #7a0a18); }
.shop-pic span { font: 900 20px var(--f-body); letter-spacing: .2em; opacity: .9; }
.shop-pic img { width: 100%; height: 100%; object-fit: cover; }
.shop-body { padding: 16px 18px 18px; }
.shop-body h3 { font-size: 16px; font-weight: 800; }
.shop-body p { margin-top: 6px; font-size: 13px; color: var(--muted); min-height: 36px; }
.shop-foot { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.shop-foot b { font-size: 17px; color: var(--red); }
.shop-foot span { font-size: 12px; }

/* ---------- лицензия: четыре уровня ---------- */
.t-bronze   { --t1: #c98a4b; --t2: #7a4a1f; --tink: #2a1608; --tglow: rgba(201,138,75,.45); }
.t-silver   { --t1: #d7dde4; --t2: #8d97a3; --tink: #1b2026; --tglow: rgba(180,192,205,.45); }
.t-gold     { --t1: #f3cc5c; --t2: #b8860b; --tink: #2b2005; --tglow: rgba(243,204,92,.5); }
.t-platinum { --t1: #eaf3ff; --t2: #8fb6d8; --tink: #101c28; --tglow: rgba(150,200,240,.55); }

.lic { position: relative; overflow: hidden; padding: 22px; border-radius: var(--r);
  color: var(--tink); background: linear-gradient(135deg, var(--t1), var(--t2) 62%, var(--t1));
  box-shadow: 0 18px 40px -18px var(--tglow); }
.lic::before { content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(115deg, rgba(255,255,255,.22) 0 2px, transparent 2px 9px); opacity: .5; }
.lic::after { content: ""; position: absolute; right: -60px; top: -80px; width: 260px; height: 260px;
  border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.55), transparent 65%);
  animation: licShine 7s ease-in-out infinite alternate; }
@keyframes licShine { from { transform: translate(0, 0); } to { transform: translate(-40px, 30px); } }
.lic > * { position: relative; z-index: 1; }
.lic-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.lic-brand { font: 800 10px var(--f-body); letter-spacing: .26em; text-transform: uppercase; opacity: .75; }
.lic-no { font: 800 13px var(--f-body); letter-spacing: .14em; padding: 4px 10px; border-radius: 999px;
  background: rgba(255,255,255,.35); }
.lic-tier { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-top: 10px;
  font: 900 clamp(30px, 6vw, 46px)/1 var(--f-display); font-style: italic;
  letter-spacing: -.02em; text-transform: uppercase; }
.lic-tier i { font: 800 11px var(--f-body); font-style: normal; letter-spacing: .28em; opacity: .6; }
.lic-perk { margin-top: 8px; max-width: 460px; font-size: 13px; opacity: .85; }
.lic-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.lic-stats > div { flex: 1 1 110px; padding: 10px 12px; border-radius: var(--r-sm); background: rgba(255,255,255,.35); }
.lic-stats b { display: block; font: 900 22px var(--f-display); line-height: 1; }
.lic-stats b.hot { color: #a01010; }
.lic-stats span { font: 700 10px var(--f-body); letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.lic-next { margin-top: 16px; font-size: 12px; font-weight: 700; }
.lic-bar { height: 6px; margin-bottom: 8px; border-radius: 999px; background: rgba(0,0,0,.18); overflow: hidden; }
.lic-bar i { display: block; height: 100%; width: var(--p); border-radius: 999px; background: var(--tink);
  animation: licFill 1.1s cubic-bezier(.2,.9,.2,1) both; }
@keyframes licFill { from { width: 0; } }
.lic-note { margin-top: 10px; font-size: 12px; opacity: .75; }
.lic-warn { margin-top: 14px; padding: 10px 12px; border-radius: var(--r-sm); background: rgba(160,10,16,.9);
  color: #fff; font-size: 13px; font-weight: 700; }
.lic-ban { filter: saturate(.6); }

.ladder { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.lad { padding: 14px; border-radius: var(--r-sm); border: 1px solid var(--line);
  background: var(--bg-2); transition: transform .2s, box-shadow .2s; }
.lad.now { border-color: transparent; box-shadow: 0 0 0 2px var(--t1), 0 14px 30px -16px var(--tglow); background: var(--surface); }
.lad.done { opacity: .72; }
.lad-chip, .tier-chip { display: inline-block; padding: 4px 12px; border-radius: 999px;
  font: 800 11px var(--f-body); letter-spacing: .14em; text-transform: uppercase;
  color: var(--tink); background: linear-gradient(135deg, var(--t1), var(--t2)); }
.lad em { display: block; margin: 10px 0 6px; font-style: normal; font: 700 11px var(--f-body);
  letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.lad p { font-size: 13px; color: var(--text-2); }

/* те же уровни в регламенте */
.tiers { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin: 16px 0; }
.tier { position: relative; overflow: hidden; padding: 16px; border-radius: var(--r-sm);
  border: 1px solid var(--line); background: var(--bg-2); }
.tier i { position: absolute; right: 10px; bottom: -14px; font: 900 56px var(--f-display); font-style: italic;
  color: var(--t1); opacity: .22; }
.tier-req { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 8px; }
.tier-req span { padding: 3px 9px; border-radius: 999px; background: var(--bg-3);
  font: 700 11px var(--f-body); letter-spacing: .04em; color: var(--text-2); }
.tier p { font-size: 13px; color: var(--muted); }

.tag-kind { padding: 3px 10px; border-radius: 999px; font: 800 11px var(--f-body); letter-spacing: .1em;
  text-transform: uppercase; background: var(--bg-3); color: var(--text-2); }
.tag-kind.tag-main { background: var(--ink); color: var(--on-ink); }
.tag-lic { padding: 3px 10px; border-radius: 999px; font: 800 11px var(--f-body); letter-spacing: .1em;
  text-transform: uppercase; color: var(--tink); background: linear-gradient(135deg, var(--t1), var(--t2)); }

/* ---------- штрафные баллы ---------- */
.pp { display: inline-grid; place-items: center; min-width: 28px; height: 24px; padding: 0 8px;
  border-radius: 999px; font: 800 12px var(--f-body); background: var(--bg-3); color: var(--text); }
.pp-1 { background: rgba(12,154,83,.16); color: var(--green); }
.pp-2 { background: rgba(201,148,0,.18); color: var(--gold); }
.pp-3 { background: rgba(225,110,0,.18); color: #d06400; }
.pp-4, .pp-5, .pp-6 { background: var(--red-soft); color: var(--red); }

.ptable { border: 1px solid var(--line); border-radius: var(--r-sm); overflow: hidden; }
.pt-head, .pt-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center;
  padding: 10px 14px; font-size: 14px; }
.pt-head { background: var(--bg-2); font: 700 10px var(--f-body); letter-spacing: .18em;
  text-transform: uppercase; color: var(--muted); }
.pt-row + .pt-row, .pt-sub + .pt-row { border-top: 1px solid var(--line); }
.pt-row.dead { opacity: .45; }
.pt-row.ban { background: var(--red-soft); }
.pt-board .pt-head, .pt-board .pt-row { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 54px auto; }
.pt-row em { font-style: normal; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.pt-sub { padding: 4px 14px 12px; background: var(--bg-2); }
.pt-line { display: grid; grid-template-columns: minmax(0, 1fr) auto 40px auto; gap: 10px; align-items: center;
  padding: 7px 0; font-size: 13px; border-top: 1px dashed var(--line-strong); }
.pt-line.dead { opacity: .45; text-decoration: line-through; }
.dot { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: var(--c); }
.lnk { border: 0; background: none; padding: 0; color: var(--red); font: 700 12px var(--f-body); cursor: pointer; }
.lnk.del { color: var(--muted); }
.lnk.del:hover { color: var(--red); }

.pen-meter { position: relative; height: 26px; margin-bottom: 16px; border-radius: 999px;
  background: var(--bg-3); overflow: hidden; }
.pen-meter i { display: block; height: 100%; width: var(--p); border-radius: 999px;
  background: linear-gradient(90deg, var(--green), var(--gold) 55%, var(--red));
  animation: licFill 1s cubic-bezier(.2,.9,.2,1) both; }
.pen-meter span { position: absolute; inset: 0; display: grid; place-items: center;
  font: 800 12px var(--f-body); letter-spacing: .1em; color: var(--text); }
.pscale { margin-top: 14px; }
.pscale summary { cursor: pointer; font: 700 13px var(--f-body); color: var(--red); margin-bottom: 10px; }

/* ---------- вкладки профиля ---------- */
.switch.tabs { display: flex; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.switch.tabs::-webkit-scrollbar { display: none; }
.switch.tabs button { flex: 0 0 auto; padding: 9px 14px; font-size: 12px; }
.pcard-top { padding-bottom: 14px; }
.pcard-top .switch { margin: 16px 0 0; }
.lnk[data-open] { white-space: nowrap; }
.pcard-head .lnk, .pcard-head a.muted { font-size: 12px; font-weight: 700; }
.entry-row + .entry-row { border-top: 1px solid var(--line); }

@media (max-width: 620px) {
  .pt-board .pt-head, .pt-board .pt-row { grid-template-columns: minmax(0, 1fr) 46px auto; }
  .pt-board .pt-head span:nth-child(2), .pt-board .pt-row > span:nth-child(2) { display: none; }
  .pt-line { grid-template-columns: minmax(0, 1fr) 40px auto; }
  .pt-line span:nth-child(2) { grid-column: 1; font-size: 11px; }
  .inc-form select, .inc-form input { font-size: 15px; }
}

/* сообщение, когда вход через Google ещё не включён */
.signin-off { position: fixed; left: 50%; bottom: 26px; z-index: 90; max-width: min(92vw, 460px);
  padding: 14px 18px; border-radius: var(--r-sm); background: var(--ink); color: var(--on-ink);
  font: 600 14px var(--f-body); text-align: center; box-shadow: 0 18px 40px -16px rgba(0,0,0,.6);
  transform: translate(-50%, 20px); opacity: 0; transition: opacity .3s, transform .3s; }
.signin-off.on { opacity: 1; transform: translate(-50%, 0); }
.gate .btn svg { margin-right: 8px; }

.lic-none { --t1: var(--bg-3); --t2: var(--bg-2); --tink: var(--text); --tglow: transparent;
  border: 1px dashed var(--line-strong); box-shadow: none; }
.lic-none::before, .lic-none::after { display: none; }
.lic-none .lic-no { background: var(--bg-3); }
.lic-none .lic-next .btn { margin-top: 4px; }

/* «представься» — у нового аккаунта имени нет, из Google мы его не тянем */
.fillme { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 16px;
  padding: 12px 14px; border-radius: var(--r-sm); border: 1px dashed var(--red);
  background: var(--red-soft); font-size: 13px; color: var(--text-2); }
.fillme b { color: var(--text); }
.fillme .btn { margin-left: auto; }

/* ---------- выбор способа входа ---------- */
.signin-pick { position: fixed; inset: 0; z-index: 120; display: grid; place-content: center;
  gap: 12px; padding: 24px; background: rgba(0,0,0,.6); backdrop-filter: blur(4px);
  opacity: 0; transition: opacity .25s; }
.signin-pick.on { opacity: 1; }
.signin-pick p { font: 800 18px var(--f-body); color: #fff; text-align: center; margin-bottom: 4px; }
.signin-pick .btn { min-width: 220px; }
.signin-pick .btn svg { margin-right: 8px; }

/* вход по почте: адрес → код */
.signin-mail { display: grid; gap: 12px; width: min(92vw, 340px); padding: 22px; border-radius: var(--r);
  background: var(--surface); border: 1px solid var(--line); color: var(--text); }
.signin-pick .signin-mail p { color: var(--text); text-align: left; margin: 0; }
.signin-mail small { font: 500 13px/1.45 var(--f-body); color: var(--text-2); }
.signin-mail small b { color: var(--text); word-break: break-all; }
.signin-mail input { width: 100%; padding: 12px 14px; border-radius: var(--r-sm); border: 1px solid var(--line-strong);
  background: var(--bg); color: var(--text); font: 600 16px var(--f-body); }
.signin-mail input[name="code"] { font-size: 22px; letter-spacing: .3em; text-align: center; }
.signin-mail input:focus-visible { outline: 2px solid var(--red); outline-offset: 1px; }
.signin-pick .signin-mail .btn { min-width: 0; width: 100%; justify-content: center; }
.signin-mail .err { color: var(--red); font-weight: 700; }
.signin-mail .err:empty { display: none; }
.signin-mail .lnk { justify-self: start; }

/* способы входа в профиле */
.logins { display: grid; gap: 8px; margin-top: 4px; }
.login-row { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: var(--r-sm);
  border: 1px solid var(--line); background: var(--bg-2); }
.login-row svg { flex: none; }
.login-row b { font: 700 14px var(--f-body); }
.login-row .muted { margin-left: auto; font-size: 13px; }
.login-row .btn { margin-left: auto; }
.login-row .ok { margin-left: auto; font: 700 12px var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: var(--red); }

/* ---------- аватарка ---------- */
.ava { position: relative; overflow: hidden; display: grid; place-items: center; padding: 0;
  border: 0; border-radius: 50%; cursor: pointer; background: var(--red); color: #fff; }
.ava img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ava i { width: 100%; height: 100%; display: grid; place-items: center;
  font: 900 26px var(--f-body); font-style: normal; }
.ava span { position: absolute; inset: auto 0 0 0; padding: 3px 0; background: rgba(0,0,0,.65);
  color: #fff; font: 700 9px var(--f-body); letter-spacing: .12em; text-transform: uppercase;
  opacity: 0; transition: opacity .2s; }
.ava:hover span, .ava:focus-visible span { opacity: 1; }
/* аватарка теперь кнопка — размер задаём ей, а картинка внутри растягивается */
.phead2 .ava { width: 64px; height: 64px; flex-shrink: 0; }
.phead2 .ava img, .phead2 .ava i { width: 100%; height: 100%; border-radius: 50%; }
.phead2 .lnk { margin-top: 8px; }

/* ---------- тест по регламенту ---------- */
.quiz { display: grid; gap: 14px; }
.q { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 14px 16px; margin: 0;
  background: var(--bg-2); transition: border-color .25s, background .25s; }
.q legend { display: flex; gap: 10px; align-items: baseline; padding: 0 6px; font-weight: 700; font-size: 15px; }
.q legend i { font: 900 13px var(--f-display); font-style: normal; color: var(--red); }
.q.right { border-color: var(--green); }
.q.wrong { border-color: var(--red); background: var(--red-soft); }
.qopt { display: flex; align-items: center; gap: 10px; padding: 7px 6px; border-radius: var(--r-xs);
  font-size: 14px; color: var(--text-2); cursor: pointer; }
.qopt:hover { background: var(--bg-3); }
.qopt input { accent-color: var(--red); width: 17px; height: 17px; }
.quiz-done { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-bottom: 16px;
  padding: 12px 14px; border-radius: var(--r-sm); border-left: 3px solid var(--muted); background: var(--bg-2); }
.quiz-done b { font-size: 15px; }
.quiz-done span { font-size: 13px; color: var(--muted); }
.quiz-done.ok { border-left-color: var(--green); }
.quiz-done.ok b { color: var(--green); }
.quiz-done.bad { border-left-color: var(--red); background: var(--red-soft); }
.quiz-done.bad b { color: var(--red); }

/* ---------- своя команда ---------- */
.treq { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.treq:last-of-type { border-bottom: 0; }
.treq b { font-size: 15px; }
.treq span { display: block; font-size: 12px; }
.treq p { margin-top: 6px; font-size: 13px; color: var(--text-2); }
.treq-act { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.treq-act select { padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: var(--r-xs);
  background: var(--bg); color: var(--text); font: 600 13px var(--f-body); }

.roster { display: grid; gap: 2px; }
.rrow { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 0; border-bottom: 1px solid var(--line); }
.rrow:last-child { border-bottom: 0; }
.rwho { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rwho img, .rwho i { width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0; }
.rwho img { object-fit: cover; }
.rwho i { display: grid; place-items: center; background: var(--bg-3); color: var(--text-2);
  font: 800 15px var(--f-display); font-style: normal; }
.rwho b { display: block; font-size: 15px; }
.rwho span { font-size: 12px; }
.ract { display: flex; align-items: center; gap: 12px; }
.ract select { padding: 7px 10px; border: 1px solid var(--line-strong); border-radius: var(--r-xs);
  background: var(--bg); color: var(--text); font: 600 13px var(--f-body); }

/* ---------- спринт-уик-энд, страница этапа, карточка пилота, чат инцидента ---------- */

.sprint-tag { display: inline-block; padding: 3px 10px; border-radius: 999px; font: 800 10px var(--f-body);
  font-style: normal; letter-spacing: .2em; text-transform: uppercase; color: #fff;
  background: linear-gradient(135deg, var(--red), #7a0a18); box-shadow: 0 4px 12px -4px var(--red-glow); }
.sprint-tag.big { padding: 6px 14px; font-size: 11px; letter-spacing: .26em; }
.tile .sprint-tag { position: absolute; right: 22px; bottom: 12px; display: block; margin: 0; }

/* лента календаря теперь ссылки */
a.tli { color: inherit; text-decoration: none; transition: background .2s, transform .2s; }
a.tli:hover { background: var(--bg-2); }
a.tli.next:hover { background: linear-gradient(90deg, var(--red-soft), var(--bg-2) 70%); }
.tli .gp .sprint-tag { margin-left: auto; }
.tli .res .go { margin-left: auto; font: 700 12px var(--f-body); letter-spacing: .06em;
  text-transform: none; color: var(--red); opacity: 0; transform: translateX(-6px); transition: opacity .2s, transform .2s; }
a.tli:hover .go, a.tli:focus-visible .go { opacity: 1; transform: none; }
@media (hover: none) { .tli .res .go { opacity: .9; transform: none; } }

/* кликабельные пилоты */
.plate[data-driver], .sub[data-driver], .trow[data-driver], .rt-row[data-driver] { cursor: pointer; }
.trow[data-driver]:hover { background: var(--bg-2); }

/* ----- страница этапа ----- */
.rhead { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; padding: 20px 22px;
  border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); }
.rhead .flag { width: 56px; height: 42px; border-radius: 6px; object-fit: cover; }
.rhead > div:nth-child(2) b { display: block; font: 800 clamp(18px, 3vw, 26px) var(--f-display); text-transform: uppercase; }
.rhead > div:nth-child(2) span { font: 600 13px var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.rwhen { margin-left: auto; text-align: right; display: grid; gap: 2px; justify-items: end; }
.rwhen b { font: 800 17px var(--f-display); text-transform: uppercase; }
.rwhen span { font: 600 13px var(--f-body); color: var(--muted); }
.rwhen .rcount { font: 800 13px var(--f-body); font-style: normal; color: var(--red); }
.rhead .sprint-tag { display: block; width: fit-content; margin-top: 8px; }
@media (max-width: 620px) { .rwhen { margin-left: 0; text-align: left; justify-items: start; flex-basis: 100%; } }

.rsched { display: grid; gap: 8px; margin: 14px 0 20px; }
.rs { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; padding: 11px 16px;
  border-radius: var(--r-sm); background: var(--bg-2); }
.rs b { display: inline-block; font: 800 13px var(--f-body); letter-spacing: .04em; }
.rs b::first-letter { text-transform: uppercase; }
.rs span { font-size: 13px; color: var(--text-2); }

.rtabs { margin-bottom: 18px; }

.rreg-top { display: grid; gap: 14px 24px; grid-template-columns: auto auto 1fr; align-items: center;
  padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); }
.rreg-n b, .rreg-fmt b { display: block; font: 900 34px/1 var(--f-display); font-style: italic; color: var(--red); }
.rreg-fmt b { font-size: 26px; color: var(--text); }
.rreg-n span, .rreg-fmt span { display: block; margin-top: 4px; font: 600 11px var(--f-body); letter-spacing: .1em;
  text-transform: uppercase; color: var(--muted); max-width: 190px; }
.rreg-act { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 14px; font-size: 13px; }
@media (max-width: 760px) { .rreg-top { grid-template-columns: auto 1fr; } .rreg-act { grid-column: 1 / -1; justify-content: flex-start; } }

.rlist { display: grid; gap: 6px; margin-top: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.rl { display: grid; grid-template-columns: 26px 34px 1fr; grid-template-areas: "pos av nm" ". . tm";
  align-items: center; gap: 2px 10px; padding: 10px 14px; border: 1px solid var(--line);
  border-left: 4px solid var(--c); border-radius: var(--r-sm); background: var(--surface); }
.rl.mine { background: var(--red-soft); border-color: var(--red); }
.rl .pos { grid-area: pos; font: 800 13px var(--f-display); color: var(--muted); }
.rl .av { grid-area: av; width: 34px; height: 34px; border-radius: 50%; overflow: hidden; display: grid; place-items: center;
  background: var(--bg-3); }
.rl .av img { width: 100%; height: 100%; object-fit: cover; }
.rl .av i { font: 800 14px var(--f-display); font-style: normal; color: var(--text-2); }
.rl b { grid-area: nm; font-size: 14px; }
.rl .tm { grid-area: tm; font-size: 11px; color: var(--muted); }
.rl em { position: absolute; }
.rl { position: relative; }
.rl em { right: 12px; top: 10px; font: 700 10px var(--f-body); font-style: normal; letter-spacing: .12em;
  text-transform: uppercase; color: var(--muted); }

.rtable { border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--surface); }
.rt-row { display: grid; grid-template-columns: 46px minmax(0, 1.6fr) minmax(0, 1fr) 70px; align-items: center; gap: 10px;
  padding: 10px 16px; border-top: 1px solid var(--line); font-size: 14px; transition: background .15s; }
.rt-row:first-child { border-top: 0; }
.rt-row[data-driver]:hover { background: var(--bg-2); }
.rt-head { background: var(--bg-2); font: 700 10px var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.rt-row .pos { font: 800 15px var(--f-display); }
.rt-row.p1 .pos { color: var(--gold); } .rt-row.p2 .pos { color: #9aa3ad; } .rt-row.p3 .pos { color: #c98a4b; }
.rt-row .who { display: flex; align-items: center; gap: 10px; min-width: 0; font-weight: 600; }
.rt-row .who b { font: 800 12px var(--f-display); letter-spacing: .06em; color: var(--text-2); min-width: 34px; }
.rt-row .tb { width: 4px; height: 20px; border-radius: 2px; background: var(--c); flex-shrink: 0; }
.rt-row .tm { color: var(--muted); font-size: 13px; }
.rt-row .num { text-align: right; }
.rt-row .pts { font: 800 15px var(--f-display); }
.rt-row .pts small { color: var(--red); margin-right: 4px; font-size: 11px; }
.rt-row .fl { margin-left: 4px; padding: 1px 7px; border-radius: 999px; font: 800 9px var(--f-body); font-style: normal;
  letter-spacing: .1em; color: #fff; background: #7b3fe4; }
@media (max-width: 620px) { .rt-row { grid-template-columns: 34px minmax(0, 1fr) 58px; padding: 10px 12px; } .rt-row .tm { display: none; } }

/* ----- карточка пилота ----- */
body.modal-open { overflow: hidden; }
.pmodal { position: fixed; inset: 0; z-index: 130; display: grid; place-items: center; padding: 20px;
  background: rgba(0,0,0,.62); backdrop-filter: blur(5px); opacity: 0; transition: opacity .22s; }
.pmodal.on { opacity: 1; }
.pm-card { position: relative; width: min(520px, 100%); max-height: calc(100vh - 40px); overflow-y: auto;
  border-radius: var(--r); background: var(--surface); border: 1px solid var(--line);
  box-shadow: 0 30px 80px -20px rgba(0,0,0,.7); transform: translateY(14px) scale(.98); transition: transform .26s cubic-bezier(.2,.9,.2,1); }
.pmodal.on .pm-card { transform: none; }
.pm-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--c); border-radius: var(--r) var(--r) 0 0; }
.pm-x { position: absolute; right: 12px; top: 16px; width: 34px; height: 34px; border: 0; border-radius: 50%;
  background: var(--bg-3); color: var(--text); font-size: 14px; cursor: pointer; }
.pm-x:hover { background: var(--red); color: #fff; }
.pm-head { display: flex; align-items: center; gap: 18px; padding: 30px 24px 18px; }
.pm-ava { width: 96px; height: 96px; flex-shrink: 0; border-radius: 50%; overflow: hidden; display: grid; place-items: center;
  background: var(--c); box-shadow: 0 0 0 4px var(--surface), 0 0 0 7px var(--c); }
.pm-ava img { width: 100%; height: 100%; object-fit: cover; }
.pm-ava i { font: 900 38px var(--f-display); font-style: normal; color: #fff; }
.pm-code { font: 800 12px var(--f-body); letter-spacing: .22em; color: var(--muted); }
.pm-code em { margin-left: 8px; font-style: normal; color: var(--red); }
.pm-who h2 { display: flex; align-items: center; gap: 10px; margin: 4px 0 10px; font: 900 clamp(22px, 5vw, 30px) var(--f-display);
  font-style: italic; text-transform: uppercase; letter-spacing: -.01em; }
.pm-who h2 img { width: 28px; height: 21px; border-radius: 3px; }
.pm-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.pm-team, .pm-kind { display: inline-flex; align-items: center; gap: 7px; padding: 4px 11px; border-radius: 999px;
  font: 700 11px var(--f-body); letter-spacing: .06em; background: var(--bg-3); color: var(--text-2); }
.pm-team i { width: 9px; height: 9px; border-radius: 50%; background: var(--c); }
.pm-kind { text-transform: uppercase; letter-spacing: .12em; font-size: 10px; }
.pm-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 0 24px; border: 1px solid var(--line);
  border-radius: var(--r-sm); overflow: hidden; background: var(--line); }
.pm-stats > div { padding: 14px 10px; text-align: center; background: var(--surface); }
.pm-stats b { display: block; font: 900 24px/1 var(--f-display); font-style: italic; }
.pm-stats span { display: block; margin-top: 5px; font: 700 9px var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.pm-hist { padding: 18px 24px 4px; }
.pm-hist h4 { margin-bottom: 10px; font: 800 11px var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.pm-strip { display: flex; flex-wrap: wrap; gap: 6px; }
.ph-r { min-width: 58px; padding: 7px 9px; border-radius: var(--r-xs); background: var(--bg-2); text-align: center; }
.ph-r b { display: block; font: 700 9px var(--f-body); letter-spacing: .12em; color: var(--muted); }
.ph-r span { display: block; margin-top: 2px; font: 900 15px var(--f-display); }
.ph-r small { display: block; font-size: 9px; color: var(--muted); }
.ph-r.win { background: var(--gold); } .ph-r.win b, .ph-r.win small { color: rgba(0,0,0,.6); } .ph-r.win span { color: #1a1300; }
.ph-r.pod { background: var(--red-soft); } .ph-r.pod span { color: var(--red); }
.pm-empty { padding: 18px 24px 4px; font-size: 13px; color: var(--muted); }
.pm-card::after { content: ""; display: block; height: 22px; }

/* ----- участники и чат инцидента ----- */
.mchips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.mchip { padding: 3px 10px; border-radius: 999px; font: 700 11px var(--f-body); background: var(--bg-3); color: var(--text-2); }
.mpick { display: flex; flex-wrap: wrap; gap: 6px; max-height: 148px; overflow-y: auto; padding: 4px; }
.mpick label { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border: 1px solid var(--line-strong);
  border-radius: 999px; font: 600 12px var(--f-body); cursor: pointer; user-select: none; transition: background .15s, border-color .15s; }
.mpick label:hover { background: var(--bg-2); }
.mpick input { position: absolute; opacity: 0; pointer-events: none; }
.mpick label:has(input:checked) { background: var(--red); border-color: var(--red); color: #fff; }

.ichat { margin-top: 14px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--bg-2); overflow: hidden; }
.ichat-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 11px 14px;
  border: 0; background: transparent; color: var(--text); font: 800 12px var(--f-body); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.ichat-head span { font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--muted); }
.ichat-body[hidden] { display: none; }
.cmsgs { display: flex; flex-direction: column; gap: 8px; max-height: 320px; min-height: 90px; overflow-y: auto; padding: 12px 14px;
  border-top: 1px solid var(--line); }
.cmsg { max-width: 82%; padding: 8px 12px; border-radius: 14px 14px 14px 4px; background: var(--surface); border: 1px solid var(--line); }
.cmsg.mine { align-self: flex-end; border-radius: 14px 14px 4px 14px; background: var(--red-soft); border-color: transparent; }
.cmsg header { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; font: 800 11px var(--f-body); }
.cmsg header em { padding: 1px 7px; border-radius: 999px; font: 800 9px var(--f-body); font-style: normal; letter-spacing: .1em;
  text-transform: uppercase; color: #fff; background: var(--red); }
.cmsg header time { margin-left: auto; font-weight: 600; color: var(--muted); }
.cmsg p { margin: 0; font-size: 14px; white-space: pre-wrap; word-break: break-word; color: var(--text); }
.cform { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--line); background: var(--surface); }
.cform input { flex: 1; min-width: 0; padding: 10px 14px; border: 1px solid var(--line-strong); border-radius: 999px;
  background: var(--bg); color: var(--text); font: 500 14px var(--f-body); }
.cform input:focus { outline: 2px solid var(--red); outline-offset: -1px; }
.cnone { padding: 14px; font-size: 13px; color: var(--muted); }

/* тест-заезд: виден в календаре, но в число Гран-при не входит */
.test-tag { display: inline-block; margin-left: 8px; padding: 3px 10px; border-radius: 999px; font: 800 10px var(--f-body);
  font-style: normal; letter-spacing: .2em; color: var(--muted); border: 1px dashed var(--line-strong); }
.tli .gp .test-tag { margin-left: auto; }
.tli .gp .test-tag + .sprint-tag { margin-left: 8px; }
