/* ─────────────────────────── страница Rush Point ───────────────────────────
   Таблица сезона, своё звание, лесенка и последние карты. Сама нашивка и
   цвета ступеней — в rush-badge.css: её показывает ещё и профиль. */

.rush { padding-bottom: 20px }

/* Сезон — справа в заголовке. Прошлых сезонов нет — выбирать не из чего,
   и кнопок тогда нет вовсе. */
.rush .seasons { display: flex; gap: 6px; flex-wrap: wrap; margin: -4px 0 14px }
.rush .seasons .tab { font-size: 12px; padding: 6px 12px }

/* ── своё звание ── */

.rush .rcard {
  display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
  background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--r); padding: 18px 22px;
  border-left: 3px solid var(--rp, var(--line));
}
.rush .rcard .meta { flex: 1 1 260px; min-width: 0; color: var(--txt-dim);
                     font-size: 13px; line-height: 1.6 }
.rush .rcard .meta b { color: var(--txt) }
.rush .rcard .meta .rstreak { margin-left: 8px; vertical-align: -2px }
/* До следующего звания. Полоса — в цвете СЛЕДУЮЩЕЙ ступени: видно, куда
   идёшь, а не где стоишь (где стоишь — и так видно по нашивке слева). */
.rush .rprog { margin-top: 8px; max-width: 420px }
.rush .rprog .track { height: 6px; background: var(--panel-3); border-radius: 3px;
                      overflow: hidden }
.rush .rprog .fill { display: block; height: 100%; border-radius: 3px;
                     background: var(--next, var(--accent)) }
.rush .rprog .cap { font-size: 12px; margin-top: 5px }
.rush .mine { margin-top: 10px; display: flex; gap: 6px; flex-wrap: wrap }
.rush .mine a { font-size: 12px; text-decoration: none; color: var(--txt-dim);
                border: 1px solid var(--line); border-radius: var(--r);
                padding: 3px 8px; white-space: nowrap }
.rush .mine a:hover { color: var(--txt); border-color: var(--txt-dim) }
.rush .mine a .up { color: var(--win-t) }
.rush .mine a .down { color: var(--loss-t) }

/* ── таблица сезона ── */

.rush .rrow {
  display: grid; align-items: center; gap: 12px;
  /* Знак — сразу за местом: по нему таблицу и читают. Столбец знака
     постоянной ширины: у каждой строки своя сетка, и «Мастер прорыва»
     иначе раздвигал бы свою строку, а ники стояли бы лесенкой. */
  grid-template-columns: 34px 200px minmax(0, 1fr) auto auto;
  padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--r);
  background: var(--panel-2); margin-bottom: 4px;
  border-left: 3px solid var(--rp, var(--line));
}
.rush .rrow:hover { background: var(--panel-3) }
.rush .rrow .pl { font-family: var(--ost); color: var(--txt-dim);
                  font-size: 15px; text-align: center }
.rush .rrow .pl::before { content: "#"; font-size: 10px; opacity: .6 }
.rush .rrow.me { border-color: var(--accent); background: var(--accent-bg) }
.rush .rrow.me { border-left-color: var(--rp, var(--accent)) }
.rush .rrow a.who { color: var(--txt); font-weight: 800; text-decoration: none;
                    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
                    min-width: 0 }
/* Ник и огонёк серии — одной ячейкой: ник режется, огонёк целый. */
.rush .rrow .whocell { display: flex; align-items: center; gap: 8px; min-width: 0 }
.rush .rrow a.who:hover { color: #fff }
.rush .rrow .wl { font-size: 12px; color: var(--txt-dim); white-space: nowrap }
.rush .rrow .wl b { color: var(--win-t) }
.rush .rrow .wl i { color: var(--loss-t); font-style: normal }
.rush .rrow .kd { font-family: var(--ost); font-size: 13px; color: var(--txt);
                  min-width: 42px; text-align: right }
/* Подписи столбцов — одной строкой над таблицей, в тех же колонках. */
.rush .rcols { display: grid; gap: 12px; padding: 0 12px 6px 15px;
               grid-template-columns: 34px 200px minmax(0, 1fr) auto auto;
               font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
               color: var(--txt-dim) }
.rush .rcols span:nth-child(4), .rush .rcols span:nth-child(5) { text-align: right }
.rush .rcols span:nth-child(5) { min-width: 42px }

/* Ступени лесенкой: маленькая нашивка и порог. */
.rush .steps { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 2px }
.rush .step { display: flex; align-items: center; gap: 7px; font-size: 12px;
              color: var(--txt-dim); padding: 4px 10px 4px 6px;
              border: 1px solid var(--line); border-radius: var(--r) }
.rush .step b { color: var(--txt); font-weight: 700 }
.rush .step.here { border-color: var(--rp); background: var(--panel-2) }

/* ── последние карты ── */

.rush .rmap { border: 1px solid var(--line); border-radius: var(--r);
              background: var(--panel-2); margin-bottom: 4px }
.rush .rmap > button {
  display: grid; width: 100%; align-items: center; gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  background: none; border: 0; padding: 9px 12px; text-align: left;
  font-family: var(--man); font-size: 13px; letter-spacing: 0;
  text-transform: none; font-weight: 600; color: var(--txt); cursor: pointer;
}
.rush .rmap > button:hover { background: var(--panel-3) }
.rush .rmap .mn { font-weight: 800; text-transform: capitalize }
.rush .rmap .sc { font-family: var(--ost); font-size: 15px; letter-spacing: .04em }
.rush .rmap .when { color: var(--txt-dim); font-size: 12px; white-space: nowrap }
.rush .rmap .off { font-size: 10px; letter-spacing: .1em; text-transform: uppercase;
                   color: var(--txt-dim); border: 1px solid var(--line);
                   border-radius: 3px; padding: 2px 6px; white-space: nowrap }
.rush .rmap.open { border-color: var(--txt-dim) }
.rush .rmap .caret { color: var(--txt-dim); font-size: 10px; transition: transform .15s }
.rush .rmap.open .caret { transform: rotate(180deg) }

/* Кто сколько получил за карту. */
.rush .rdet { padding: 4px 12px 12px }
.rush .rdet .side { font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
                    color: var(--txt-dim); margin: 10px 0 4px }
.rush .rdet .side.ct { color: var(--ct) }
.rush .rdet .side.t { color: var(--t) }
.rush .prow { display: grid; align-items: center; gap: 12px;
              grid-template-columns: 200px minmax(0, 1fr) auto auto;
              padding: 5px 0; border-top: 1px solid var(--line) }
.rush .prow a { color: var(--txt); text-decoration: none; font-weight: 700;
                overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
.rush .prow a:hover { color: #fff }
.rush .prow .kda { font-size: 12px; color: var(--txt-dim); white-space: nowrap }
.rush .prow .dl { font-family: var(--ost); font-size: 14px; min-width: 52px;
                  text-align: right; white-space: nowrap }
.rush .dl.up { color: var(--win-t) }
.rush .dl.down { color: var(--loss-t) }
.rush .dl.zero { color: var(--txt-dim) }

/* ── связки сезона ──
   Строка: номер, двое с нашивками, сколько вместе, полоса и процент.
   Полоса — процент побед вместе; черта на ней — сколько эти двое
   выигрывают порознь, в среднем. Невезучая пара — серой полосой. */
.rush .rpair { display: grid; align-items: center; gap: 12px;
               grid-template-columns: 24px minmax(0, 1fr) 190px 150px 44px;
               padding: 9px 12px; border: 1px solid var(--line);
               border-radius: var(--r); background: var(--panel-2); margin-bottom: 4px }
.rush .rpair .n { font-family: var(--ost); color: var(--txt-dim); font-size: 15px;
                  text-align: center }
.rush .rpair .duo { display: flex; align-items: center; gap: 8px; min-width: 0 }
.rush .rpair .duo a { color: var(--txt); font-weight: 800; text-decoration: none;
                      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
                      min-width: 0 }
.rush .rpair .duo a:hover { color: #fff }
.rush .rpair .duo i { font-style: normal; color: var(--txt-dim); font-weight: 600 }
.rush .rpair .duo .rpb { flex: none }
.rush .rpair .g { font-size: 12px; color: var(--txt-dim); white-space: nowrap }
.rush .rpair .g b { color: var(--txt) }
.rush .rpair b.pc { font-family: var(--ost); font-size: 17px; color: var(--txt);
                    text-align: right }
.rush .rbar { position: relative; display: block; height: 10px; border-radius: 4px;
              background: var(--panel-3) }
.rush .rbar .f { position: absolute; left: 0; top: 0; bottom: 0;
                 border-radius: 0 4px 4px 0; background: var(--accent) }
.rush .rbar .avg { position: absolute; top: -4px; bottom: -4px; width: 2px;
                   margin-left: -1px; background: var(--txt); border-radius: 1px }
.rush .rpair.sad .f { background: #6b7f99 }

/* ── итоги сезона ──
   Карточка чемпиона: нашивка крупно, ник, звание и кто за ним. Полоса
   слева — в цвете его звания. Под ней — четыре награды. */
.rush .rchamp { display: flex; align-items: center; gap: 26px; padding: 22px 26px;
                background: var(--panel); border: 1px solid var(--line);
                border-left: 4px solid var(--rp, var(--line)); border-radius: var(--r) }
.rush .rchamp .patch { flex: none }
.rush .rchamp .tx { min-width: 0 }
.rush .rchamp .lbl { font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
                     color: var(--txt-dim) }
.rush .rchamp a.nm { display: block; font-family: var(--ost); font-size: 40px;
                     font-weight: 700; color: var(--txt); line-height: 1.1;
                     margin: 4px 0; text-decoration: none; overflow: hidden;
                     text-overflow: ellipsis; white-space: nowrap }
.rush .rchamp a.nm:hover { color: #fff }
.rush .rchamp .sub { color: var(--txt-dim); font-size: 14px; line-height: 1.5 }
.rush .rchamp .sub b { color: var(--txt) }
.rush .rawards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
                 gap: 10px; margin: 10px 0 8px }
.rush .raw { background: var(--panel-2); border: 1px solid var(--line);
             border-radius: var(--r); padding: 14px 16px; min-width: 0 }
.rush .raw .k { display: block; font-size: 10px; letter-spacing: .14em;
                text-transform: uppercase; color: var(--txt-dim) }
.rush .raw b { display: block; font-family: var(--ost); font-size: 22px; color: var(--txt);
               margin: 6px 0 2px; overflow: hidden; text-overflow: ellipsis;
               white-space: nowrap }
.rush .raw .v { font-size: 12px; color: var(--txt-dim) }

@media (max-width: 560px) {
  /* На телефоне ник уходит под знак: вместе с названием звания в одну
     строку он не встаёт, а резать его многоточием — хуже переноса. */
  .rush .rrow { grid-template-columns: 26px minmax(0, 1fr) auto;
                grid-template-areas: "pl rk kd" ". who wl"; row-gap: 4px }
  .rush .rrow .pl { grid-area: pl }
  .rush .rrow .rpb { grid-area: rk }
  .rush .rrow .whocell { grid-area: who }
  .rush .rrow .wl { grid-area: wl }
  .rush .rrow .kd { grid-area: kd }
  .rush .rcols { display: none }
  .rush .rcard { padding: 14px 16px; gap: 14px }
  .rush .rmap > button { grid-template-columns: minmax(0, 1fr) auto auto; }
  .rush .rmap .when { display: none }
  .rush .prow { grid-template-columns: minmax(0, 1fr) auto auto }
  .rush .prow .rpb { display: none }
  /* Связка на телефоне — в две строки: двое сверху, полоса под ними. */
  .rush .rpair { grid-template-columns: 20px minmax(0, 1fr) 44px;
                 grid-template-areas: "n duo pc" ". g g" ". bar bar"; row-gap: 6px }
  .rush .rpair .n { grid-area: n }
  .rush .rpair .duo { grid-area: duo }
  .rush .rpair .g { grid-area: g }
  .rush .rpair .rbar { grid-area: bar }
  .rush .rpair b.pc { grid-area: pc }
  .rush .rchamp { padding: 16px; gap: 16px }
  .rush .rchamp .patch { width: 60px; height: 66px }
  .rush .rchamp a.nm { font-size: 30px }
  .rush .rawards { grid-template-columns: repeat(2, minmax(0, 1fr)) }
}

/* ── нет данных: N/A (App.na) ──
   Места у калибрующегося нет — N/A без «#» перед ним; пустые блоки
   (связки, чемпион) — та же строка с N/A и объяснением. */
.rush .rrow .pl:has(.na)::before { content: none }
.rush .none { color: var(--txt-dim); font-size: 13px; line-height: 1.6; padding: 10px 0 4px }
.rush .none .na { margin-right: 4px }
.rush .raw b .na { font-size: 16px }
