/* KiberBonus — основной стиль. Мобильная раскладка по умолчанию, ПК — от 1024px. */

:root {
  --bg: #0B0C0F;
  --bg2: #0F1115;
  --card: #17191F;
  --card2: #1D2027;
  --line: #22252D;
  --line2: #2C313B;
  --text: #E8EAEE;
  --soft: #C9CED7;
  --muted: #A3A9B5;
  --dim: #8C929E;
  --acc: #B8F23A;
  --on-acc: #0B0C0F;
  --gold: #F2C14E;
  --silver: #C9CED7;
  --bronze: #C98A52;
  --win: #3FCF8E;
  --lose: #FF5A4E;
  --r: 14px;
  --r-lg: 18px;
  --gap: 16px;
  --font: 'Golos Text', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --display: 'Unbounded', 'Golos Text', system-ui, sans-serif;
  --mono: ui-monospace, 'JetBrains Mono', Consolas, monospace;
  --wrap: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body { margin: 0; background: var(--bg); color: var(--text); font: 15px/1.45 var(--font); padding-bottom: 76px; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: #fff; }
p a, .kb-prose a { color: var(--acc); text-decoration: underline; text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; border-radius: 6px; }
.screen-reader-text, .kb-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kb-muted { color: var(--muted); }
code { font-family: var(--mono); font-size: .92em; background: var(--bg2); padding: 2px 6px; border-radius: 6px; }

.kb-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 16px; }
.kb-main { padding: 12px 0 32px; }
.kb-section { margin-top: 28px; }
.kb-stack { display: flex; flex-direction: column; gap: 8px; }

/* ---------- Иконки, флаги ---------- */
.kb-i { flex: 0 0 auto; display: inline-block; vertical-align: middle; }
.kb-flag { display: inline-block; width: 20px; height: 15px; border-radius: 2px; object-fit: cover; vertical-align: -2px; }
.kb-country { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- Кнопки ---------- */
.kb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 12px;
  border: 1px solid var(--line2); background: var(--card); color: var(--text); font-weight: 600; cursor: pointer; transition: background .15s, border-color .15s; }
.kb-btn:hover { background: var(--card2); color: #fff; }
.kb-btn--accent { background: var(--acc); color: var(--on-acc); border-color: var(--acc); font-weight: 700; }
.kb-btn--accent:hover { background: var(--acc); color: var(--on-acc); filter: brightness(1.08); }
.kb-btn--ghost { background: transparent; border-color: var(--acc); color: var(--acc); }
.kb-btn--ghost[aria-pressed="true"] { background: var(--acc); color: var(--on-acc); }
.kb-btn--sm { min-height: 36px; padding: 0 12px; font-size: 13px; border-radius: 10px; }
.kb-btn--block { width: 100%; }
.kb-grow { flex: 1; }
.kb-btn--big { min-height: 52px; font-size: 16px; border-radius: 14px; }
.kb-iconbtn { width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; cursor: pointer; }
.kb-iconbtn:hover { background: var(--card); }

/* ---------- Шапка ---------- */
.kb-header { position: sticky; top: 0; z-index: 50; background: rgba(11, 12, 15, .92); backdrop-filter: blur(10px); border-bottom: 1px solid #1E2128; }
.kb-header__bar { display: flex; align-items: center; gap: 8px; height: 60px; }
.kb-logo { font-family: var(--display); font-weight: 700; font-size: 18px; letter-spacing: .5px; white-space: nowrap; }
.kb-logo span { color: var(--acc); }
.kb-header__nav { display: none; }
.kb-header__actions { margin-left: auto; display: flex; gap: 2px; }
.kb-header .kb-header__search { display: none; }
.kb-games-bar { display: none; border-top: 1px solid #16181D; }

.kb-drawer { position: fixed; inset: 0; z-index: 90; background: rgba(0, 0, 0, .6); display: none; }
.kb-drawer.is-open { display: block; }
.kb-drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(360px, 88vw); background: var(--bg); border-left: 1px solid var(--line); padding: 12px 16px 24px; overflow-y: auto; }
.kb-drawer__head { display: flex; align-items: center; justify-content: space-between; height: 48px; margin-bottom: 8px; }
.kb-drawer ul { list-style: none; margin: 0 0 16px; padding: 0; }
.kb-drawer li a { display: flex; align-items: center; min-height: 48px; border-bottom: 1px solid var(--line); font-weight: 500; }

.kb-searchbox { display: flex; align-items: center; gap: 10px; background: var(--card); border: 1px solid #262A33; border-radius: 14px; padding: 0 6px 0 14px; height: 52px; }
.kb-searchbox input { flex: 1; min-width: 0; background: transparent; border: 0; outline: none; font-size: 16px; }
.kb-searchbox .kb-i { color: var(--muted); }

/* ---------- Нижняя навигация (мобильная) ---------- */
.kb-bnav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; height: 68px; padding-bottom: env(safe-area-inset-bottom);
  background: #111318; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.kb-bnav a, .kb-bnav__more { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; font-size: 11px; color: var(--muted); }
.kb-bnav a.is-on { color: var(--acc); }
.kb-bnav__more { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }

/* ---------- Хлебные крошки ---------- */
.kb-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 2px 6px; margin: 0 0 12px; padding: 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
.kb-crumbs li { display: flex; gap: 6px; flex: none; max-width: 100%; white-space: nowrap; }
.kb-crumbs li + li::before { content: '›'; color: var(--dim); }
.kb-crumbs li:last-child { flex: 0 1 auto; min-width: 0; white-space: normal; color: var(--text); }

/* ---------- Заголовки ---------- */
.kb-h1 { font-family: var(--display); font-weight: 700; font-size: 26px; line-height: 1.15; margin: 8px 0; }
.kb-sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.kb-h2 { display: flex; align-items: center; gap: 8px; font-family: var(--display); font-weight: 500; font-size: 17px; margin: 0; }
.kb-dia { width: 10px; height: 10px; background: var(--acc); transform: rotate(45deg); flex: 0 0 auto; }
.kb-more { display: inline-flex; align-items: center; gap: 2px; color: var(--acc); font-size: 14px; font-weight: 600; padding: 10px 0; }
.kb-lead { color: var(--muted); margin: 0 0 14px; }

/* ---------- Дисциплины ---------- */
.kb-games { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.kb-game { min-height: 44px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 4px;
  border-radius: 12px; background: var(--card); font-size: 13px; font-weight: 500; line-height: 1.1; border-top: 2px solid var(--gc); }
.kb-game small { font-size: 10px; color: var(--muted); }
.kb-game.is-on { background: var(--gc); color: var(--on-acc); font-weight: 700; }
.kb-game.is-on small { color: rgba(0, 0, 0, .6); }

/* ---------- Плитки, карточки ---------- */
.kb-box { background: var(--card); border-radius: var(--r-lg); overflow: hidden; }
.kb-box--pad { padding: 14px; }
.kb-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kb-tiles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kb-tile { background: var(--card); border-radius: 12px; padding: 10px 12px; min-width: 0; }
.kb-tile small { display: block; font-size: 12px; color: var(--muted); }
.kb-tile b { display: flex; align-items: center; gap: 6px; font-weight: 700; margin-top: 2px; overflow-wrap: anywhere; }
.kb-tile--big b { font-family: var(--display); font-size: 22px; }
.kb-tile--acc b { color: var(--acc); }
.kb-faceit { width: 20px; height: 20px; border-radius: 10px; background: #FF5500; color: #fff; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; }

.kb-rows > * { display: flex; justify-content: space-between; gap: 12px; padding: 13px 14px; border-bottom: 1px solid var(--line); }
.kb-rows > *:last-child { border-bottom: 0; }
.kb-rows dt, .kb-rows span:first-child { color: var(--muted); }
.kb-rows dd { margin: 0; font-weight: 700; text-align: right; overflow-wrap: anywhere; }
.kb-rows a.kb-rows__link { color: var(--acc); font-weight: 600; }

.kb-ava { width: 40px; height: 40px; border-radius: 12px; overflow: hidden; background: #262A33; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; font-weight: 700; }
.kb-ava img { width: 100%; height: 100%; object-fit: cover; }
.kb-ava--44 { width: 44px; height: 44px; }
.kb-ava--52 { width: 52px; height: 52px; border-radius: 14px; font-size: 18px; }
.kb-ava.is-mono { color: var(--acc); font-family: var(--display); }
.kb-tlogo { width: 56px; height: 56px; border-radius: 14px; background: #E8EAEE; color: #0B0C0F; display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--display); font-weight: 700; font-size: 16px; overflow: hidden; flex: 0 0 auto; }
.kb-tlogo img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.kb-tag { position: absolute; top: 10px; left: 10px; font-size: 11px; font-weight: 700; color: var(--on-acc); background: var(--acc); border-radius: 5px; padding: 2px 6px; }

/* Карточка игрока */
.kb-pgrid { display: grid; grid-template-columns: 1fr; gap: 10px; }
.kb-pcard { display: flex; gap: 12px; align-items: center; background: var(--card); border-radius: 16px; padding: 10px; overflow: hidden; }
.kb-pcard__photo { position: relative; width: 84px; height: 84px; border-radius: 12px; overflow: hidden; background: #14161B; flex: 0 0 auto; }
.kb-pcard__photo img { width: 100%; height: 100%; object-fit: cover; }
.kb-pcard__photo .kb-tag { top: 6px; left: 6px; font-size: 10px; }
.kb-pcard__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kb-pcard__nick { font-size: 17px; display: flex; align-items: center; gap: 6px; }
.kb-pcard__body > small { color: var(--muted); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kb-mini { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 6px; font-size: 13px; }
.kb-mini > span { background: var(--bg2); border-radius: 10px; padding: 6px 8px; min-width: 0; }
.kb-mini small { display: block; color: var(--muted); font-size: 11px; }
.kb-mini b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
.kb-sil { width: 100%; height: 100%; fill: #2A2F39; }

.kb-prow { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.kb-prow:last-child { border-bottom: 0; }
.kb-prow__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.kb-prow__main b { display: flex; align-items: center; gap: 6px; }
.kb-prow__main small { color: var(--muted); font-size: 13px; }
.kb-prow__stats { display: flex; gap: 14px; text-align: right; font-size: 13px; }
.kb-prow__stats small { display: block; color: var(--muted); font-size: 11px; }

.kb-tcard { display: flex; align-items: center; gap: 14px; background: var(--card); border-radius: 16px; padding: 12px 14px; }
.kb-tcard__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kb-tcard__main small { color: var(--muted); font-size: 13px; }
.kb-tcard__roster { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Лента ---------- */
.kb-ev { display: flex; gap: 12px; padding: 13px 14px; border-bottom: 1px solid var(--line); }
.kb-ev:last-child { border-bottom: 0; }
.kb-ev__ico { width: 32px; height: 32px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  color: var(--ec); background: color-mix(in srgb, var(--ec) 14%, transparent); }
.kb-ev small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.kb-ev__text { display: block; color: var(--soft); font-size: 14px; margin-top: 4px; }

/* ---------- Главная ---------- */
.kb-hero { padding: 8px 0 4px; position: relative; }
.kb-hero .kb-h1 { font-size: 26px; }
.kb-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kb-toolcard { background: var(--card); border-radius: 14px; padding: 14px; min-height: 96px; display: flex; flex-direction: column; justify-content: space-between; gap: 10px; }
.kb-toolcard .kb-i { color: var(--acc); }
.kb-toolcard b { font-weight: 600; }
.kb-toolcard small { display: none; color: var(--muted); font-size: 13px; }
.kb-cta { background: #15201A; border: 1px solid #2B3D2F; border-radius: 16px; padding: 18px; }
.kb-cta b { font-family: var(--display); font-weight: 500; font-size: 16px; display: block; }
.kb-cta p { color: #B9C4BC; font-size: 14px; margin: 6px 0 14px; }
.kb-devgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kb-devcard { background: var(--card); border-radius: 14px; padding: 12px; display: flex; flex-direction: column; gap: 4px; }
.kb-devcard__img { height: 72px; border-radius: 10px; background: #F1F2F4; display: flex; align-items: center; justify-content: center; color: #1B1D22; margin-bottom: 6px; overflow: hidden; }
.kb-devcard__img img { max-height: 100%; width: auto; object-fit: contain; }
.kb-devcard small { color: var(--muted); font-size: 12px; }
.kb-devcard b { font-weight: 600; font-size: 14px; }
.kb-devcard em { font-style: normal; color: var(--acc); font-size: 12px; }
.kb-list { display: flex; flex-direction: column; gap: 8px; }
.kb-listlink { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--card); border-radius: 14px; padding: 14px; }
.kb-listlink small { display: block; color: var(--muted); font-size: 12px; }

/* ---------- Страница игрока ---------- */
.kb-phero { position: relative; height: 300px; margin: 0 -16px; background: #14161B; overflow: hidden; border-bottom: 2px solid var(--acc); }
.kb-phero__bg { position: absolute; inset: 0; }
.kb-phero__stripes { position: absolute; inset: 0; background: repeating-linear-gradient(135deg, transparent 0 28px, color-mix(in srgb, var(--acc) 16%, transparent) 28px 30px);
  mask-image: linear-gradient(135deg, #000 0 30%, transparent 45%); -webkit-mask-image: linear-gradient(135deg, #000 0 30%, transparent 45%); }
.kb-phero__mark { position: absolute; right: 12px; top: 8px; font-family: var(--display); font-weight: 700; font-size: 64px; color: rgba(255, 255, 255, .04); line-height: 1; }
.kb-phero__photo { position: absolute; right: 0; bottom: 0; width: 62%; height: 100%; }
.kb-phero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; mask-image: linear-gradient(90deg, transparent, #000 30%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%); }
.kb-phero__photo .kb-sil { position: absolute; inset: 0; }
.kb-phero__credit { position: absolute; top: 12px; right: 12px; font-size: 11px; color: var(--muted); background: rgba(11, 12, 15, .8); border-radius: 6px; padding: 3px 8px; max-width: 60%; }
.kb-phero__info { position: absolute; left: 16px; right: 16px; bottom: 16px; }
.kb-phero__team { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.kb-phero__team .kb-tlogo { width: 28px; height: 28px; border-radius: 8px; font-size: 10px; }
.kb-phero h1 { font-family: var(--display); font-weight: 700; font-size: 34px; line-height: 1; margin: 0; overflow-wrap: anywhere; }
.kb-phero__name { display: flex; align-items: center; gap: 6px; color: var(--soft); font-size: 14px; margin-top: 6px; }
.kb-pos { display: inline-block; background: var(--acc); color: var(--on-acc); border-radius: 6px; padding: 3px 8px; font-size: 12px; font-weight: 700; margin-bottom: 8px; }

.kb-socials { display: flex; flex-wrap: wrap; gap: 6px; }
.kb-socials a { width: 44px; height: 44px; border-radius: 12px; background: var(--card); display: inline-flex; align-items: center; justify-content: center; }
.kb-socials a:hover { background: var(--card2); }
.kb-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.kb-actions .js-follow { width: 100%; }
.kb-note { font-size: 12px; color: var(--dim); margin-top: 8px; }
.kb-note a { color: var(--muted); text-decoration: underline; }

.kb-xh-box { background: var(--card); border-radius: var(--r-lg); overflow: hidden; }
.kb-xh-view { height: 190px; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden;
  --wall: #C8A978; --mortar: rgba(70, 50, 25, .28); --floor: #8B7355; --box: #7A5A35;
  background:
    linear-gradient(to bottom, transparent 62%, rgba(0,0,0,.18) 62%, rgba(0,0,0,.18) 63%, transparent 63%),
    linear-gradient(to bottom, var(--wall) 0 62%, var(--floor) 62% 100%); }
/* Кладка стены */
.kb-xh-view::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 62%;
  background:
    repeating-linear-gradient(to bottom, transparent 0 21px, var(--mortar) 21px 23px),
    repeating-linear-gradient(to right, transparent 0 46px, var(--mortar) 46px 48px);
  -webkit-mask: linear-gradient(#000, #000); opacity: .9; }
/* Ящик на полу */
.kb-xh-view::after { content: ''; position: absolute; left: 9%; bottom: 14%; width: 22%; height: 34%; background: var(--box);
  box-shadow: inset 0 0 0 3px rgba(0,0,0,.25), inset 0 0 0 9px rgba(255,255,255,.06); }
.kb-xh-view[data-map="mirage"]  { --wall: #D9C29A; --mortar: rgba(90, 70, 40, .25); --floor: #A08A66; --box: #6E5A3E; }
.kb-xh-view[data-map="inferno"] { --wall: #A65A3C; --mortar: rgba(40, 20, 10, .35); --floor: #6E5E52; --box: #5C4630; }
.kb-xh-view[data-map="nuke"]    { --wall: #7D8A93; --mortar: rgba(20, 30, 40, .30); --floor: #4F585F; --box: #A68A3A; }
.kb-xh-view[data-map="ancient"] { --wall: #7E8C6A; --mortar: rgba(30, 40, 20, .35); --floor: #5E5848; --box: #4E5A3A; }
.kb-xh-view[data-map="anubis"]  { --wall: #C9AE7E; --mortar: rgba(60, 45, 20, .28); --floor: #3E6F7A; --box: #8A6A3A; }
.kb-xh-maps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 10px; border-bottom: 1px solid var(--line); }
.kb-xh-maps button { min-height: 40px; border-radius: 10px; border: 0; background: transparent; color: var(--muted); font-size: 13px; cursor: pointer; }
.kb-xh-maps button.is-on { background: #2A2E37; color: #fff; font-weight: 600; }
.kb-xh-code { padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.kb-codeline { font-family: var(--mono); font-size: 13px; background: var(--bg2); border-radius: 10px; padding: 12px; word-break: break-all; }
.kb-pre { font-family: var(--mono); font-size: 13px; color: var(--soft); background: var(--bg2); border-radius: 10px; padding: 12px; white-space: pre-wrap; word-break: break-word; margin: 0; }

.kb-xh { position: relative; z-index: 1; }
.kb-xh i { position: absolute; display: block; }

.kb-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 2px; background: var(--card); border-radius: 14px; padding: 4px; }
.kb-tabs button { min-height: 44px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); font-size: 13px; cursor: pointer; padding: 0 2px; }
.kb-tabs button[aria-selected="true"] { background: #2A2E37; color: #fff; font-weight: 600; }
.kb-tabpanel { margin-top: 8px; }
.kb-tabpanel[hidden] { display: none; }
.kb-setgroup { background: var(--card); border-radius: 14px; }
.kb-setgroup__title { display: block; margin: 0; padding: 12px 14px 4px; font-size: 15px; font-weight: 700; color: var(--text); }

.kb-dev-hero { grid-column: span 2; flex-direction: row; align-items: center; gap: 12px; }
.kb-dev-hero .kb-devcard__img { width: 96px; height: 72px; margin: 0; flex: 0 0 auto; }

.kb-ach-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.kb-ach-counts > div { background: var(--card); border-radius: 14px; padding: 12px; text-align: center; }
.kb-ach-counts b { display: block; font-family: var(--display); font-size: 22px; }
.kb-ach-counts small { color: var(--muted); font-size: 12px; }
.kb-c-gold { color: var(--gold); } .kb-c-silver { color: var(--silver); } .kb-c-bronze { color: var(--bronze); }
.kb-ach { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.kb-ach:last-child { border-bottom: 0; }
.kb-ach__ico { width: 40px; height: 40px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: #23262D; flex: 0 0 auto; }
.kb-ach__ico.is-gold { background: #2B2617; color: var(--gold); } .kb-ach__ico.is-silver { color: var(--silver); } .kb-ach__ico.is-bronze { background: #2A2018; color: var(--bronze); }
.kb-ach__main { flex: 1; min-width: 0; }
.kb-ach__main small { display: block; color: var(--muted); font-size: 13px; }

.kb-team-head { display: flex; align-items: center; gap: 14px; padding: 14px; border-bottom: 1px solid var(--line); }
.kb-team-head b { font-family: var(--display); font-size: 17px; display: block; }
.kb-team-head small { color: var(--muted); font-size: 13px; display: flex; align-items: center; gap: 6px; }
.kb-team-stats { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.kb-team-stats > div { padding: 12px; text-align: center; border-right: 1px solid var(--line); }
.kb-team-stats > div:last-child { border-right: 0; }
.kb-team-stats small { display: block; color: var(--muted); font-size: 12px; }
.kb-roster { padding: 6px 0; }
.kb-roster > * { display: flex; align-items: center; gap: 12px; padding: 8px 14px; }
.kb-roster .is-me { background: color-mix(in srgb, var(--acc) 10%, var(--card)); }
.kb-roster .is-me .kb-ava { background: var(--acc); color: var(--on-acc); }
.kb-roster__main { flex: 1; min-width: 0; }
.kb-roster__main b { display: flex; align-items: center; gap: 6px; }
.kb-roster__main small { color: var(--muted); font-size: 13px; }
.kb-roster__val { font-size: 13px; color: var(--muted); }

.kb-hero-list .kb-hcard { background: var(--card); border-radius: 14px; overflow: hidden; }
.kb-hgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kb-hcard__art { height: 56px; background: color-mix(in srgb, var(--acc) 12%, #1A1A1A); display: flex; align-items: center; justify-content: center; font-family: var(--display); font-weight: 700; color: var(--acc); font-size: 20px; }
.kb-hcard__body { padding: 8px 10px; }
.kb-hcard__body b { font-size: 14px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kb-hcard__body small { color: var(--muted); font-size: 12px; }
.kb-wr-up { color: var(--win); } .kb-wr-down { color: var(--lose); }
.kb-match { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.kb-match:last-child { border-bottom: 0; }
.kb-wl { width: 32px; height: 32px; border-radius: 8px; font-weight: 700; font-size: 13px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.kb-wl.is-w { background: #16301F; color: var(--win); } .kb-wl.is-l { background: #36191A; color: var(--lose); }

.kb-sticky-cta { position: fixed; left: 0; right: 0; bottom: 68px; z-index: 55; padding: 10px 16px; background: rgba(17, 19, 24, .96); border-top: 1px solid var(--line); display: flex; gap: 8px; }
.has-sticky-cta { padding-bottom: 150px; }

.kb-faq details { background: var(--card); border-radius: 14px; margin-bottom: 8px; }
.kb-faq summary { padding: 14px; cursor: pointer; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.kb-faq summary::after { content: '+'; color: var(--acc); font-weight: 700; }
.kb-faq details[open] summary::after { content: '–'; }
.kb-faq p { margin: 0; padding: 0 14px 14px; color: var(--soft); }

.kb-stat-tiles .kb-tile--big { grid-row: span 1; }
.kb-career__row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.kb-career__row:last-child { border-bottom: 0; }
.kb-career__row.is-now { background: color-mix(in srgb, var(--acc) 8%, var(--card)); }
.kb-career__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kb-career__main small { color: var(--muted); font-size: 13px; }
.kb-career__trophies { display: inline-flex; align-items: center; gap: 6px; color: var(--gold); font-size: 13px; }
.kb-tlogo--sm { width: 40px; height: 40px; border-radius: 10px; font-size: 12px; }

/* ---------- Каталог и фильтры ---------- */
.kb-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.kb-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.kb-filters select, .kb-filters input, .kb-tool select, .kb-tool input, .kb-form input, .kb-form textarea {
  min-height: 44px; background: var(--card); border: 1px solid var(--line2); border-radius: 12px; padding: 0 12px; color: var(--text); font-size: 15px; width: 100%; }
.kb-form textarea { padding: 12px; min-height: 120px; }
.kb-filters__actions { grid-column: 1 / -1; display: flex; gap: 8px; }
.kb-filters__actions > * { flex: 1; }
.kb-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border-radius: 999px; background: var(--card); font-size: 13px; }
.kb-chip.is-on { background: var(--acc); color: var(--on-acc); }
.kb-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.kb-pager { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 20px 0; }
.kb-pager a, .kb-pager span { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--card); padding: 0 12px; }
.kb-pager .current, .kb-pager .is-on { background: var(--acc); color: var(--on-acc); font-weight: 700; }
.kb-empty { background: var(--card); border-radius: 16px; padding: 24px; text-align: center; color: var(--muted); }

/* ---------- Инструменты, формы, таблицы ---------- */
.kb-tool { background: var(--card); border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.kb-tool select, .kb-tool input { background: var(--bg2); }
.kb-tool label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--muted); flex: 1; }
.kb-tool__row { display: flex; gap: 10px; }
.kb-tool__out { background: var(--bg2); border-radius: 12px; padding: 14px; }
.kb-tool__out span { display: block; color: var(--muted); font-size: 13px; }
.kb-tool__out b { font-family: var(--display); font-size: 28px; color: var(--acc); }
.kb-tool__out small { display: block; color: var(--muted); }
.kb-table-wrap { overflow-x: auto; margin-top: 12px; }
.kb-table { width: 100%; border-collapse: collapse; background: var(--card); border-radius: 14px; overflow: hidden; font-size: 14px; }
.kb-table th, .kb-table td { padding: 12px; border-bottom: 1px solid var(--line); text-align: left; }
.kb-table thead th { color: var(--acc); }
.kb-table tbody th { color: var(--muted); font-weight: 500; }
.kb-table td.is-diff { color: var(--gold); }
.kb-form { display: flex; flex-direction: column; gap: 12px; background: var(--card); border-radius: 16px; padding: 16px; }
.kb-form input, .kb-form textarea { background: var(--bg2); }
.kb-form__field { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--muted); }
.kb-form__check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--muted); }
.kb-form__check input { width: 20px; min-height: 20px; height: 20px; margin-top: 2px; flex: 0 0 auto; accent-color: var(--acc); }
.kb-hp { position: absolute; left: -9999px; }
.kb-form-ok { background: #15201A; border: 1px solid #2B3D2F; border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; }
.kb-xgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kb-xcard { background: var(--card); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
.kb-xcard__view { height: 110px; background: #C8A978; display: flex; align-items: center; justify-content: center; }
.kb-xcard__nick { padding: 8px 10px 0; font-weight: 700; }
.kb-xcard code { margin: 6px 10px; font-size: 11px; word-break: break-all; background: var(--bg2); }
.kb-xcard .kb-btn { margin: 0 10px 10px; width: auto; }
.kb-shop { display: flex; flex-direction: column; gap: 6px; margin: 12px 0; }
.kb-ad { color: var(--dim); font-size: 11px; }

/* Таблица-карточки на телефоне: каждая строка — карточка, без горизонтальной прокрутки */
@media (max-width: 639px) {
  .kb-table--cards thead { display: none; }
  .kb-table--cards, .kb-table--cards tbody { display: block; background: transparent; }
  .kb-table--cards tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; background: var(--card); border-radius: 14px; padding: 12px 14px; margin-bottom: 8px; }
  .kb-table--cards th, .kb-table--cards td { border: 0; padding: 0; min-width: 0; overflow-wrap: anywhere; }
  .kb-table--cards tbody th { grid-column: 1 / -1; font-size: 16px; font-weight: 700; }
  .kb-table--cards td::before { content: attr(data-label); display: block; font-size: 12px; color: var(--muted); }
  .kb-table--cards td:last-child { grid-column: 1 / -1; }
}

/* ---------- Текст страниц ---------- */
.kb-prose { max-width: 760px; font-size: 16px; line-height: 1.65; color: var(--soft); }
.kb-prose h2 { font-family: var(--display); font-weight: 500; font-size: 20px; color: var(--text); margin: 28px 0 10px; }
.kb-prose h3 { font-size: 17px; color: var(--text); margin: 22px 0 8px; }
.kb-prose ul, .kb-prose ol { padding-left: 22px; }
.kb-prose li { margin: 4px 0; }
.kb-prose table { width: 100%; border-collapse: collapse; }
.kb-prose td, .kb-prose th { border-bottom: 1px solid var(--line); padding: 8px; text-align: left; }
.kb-sitemap { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }

/* ---------- Подвал, cookie ---------- */
.kb-footer { border-top: 1px solid #1E2128; background: #0E1013; padding: 28px 0; color: var(--dim); font-size: 13px; }
.kb-footer__grid { display: grid; gap: 20px; grid-template-columns: 1fr 1fr; }
.kb-footer__grid > div:first-child { grid-column: 1 / -1; }
.kb-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.kb-footer a { color: var(--soft); }
.kb-footer b { color: var(--dim); font-size: 13px; display: block; margin-bottom: 8px; }
.kb-age { display: inline-block; border: 1px solid var(--line2); border-radius: 6px; padding: 1px 6px; color: var(--soft); margin-left: 6px; }
.kb-cookie { position: fixed; left: 12px; right: 12px; bottom: 80px; z-index: 95; background: var(--card2); border: 1px solid var(--line2); border-radius: 16px; padding: 14px; display: none; gap: 10px; flex-direction: column; box-shadow: 0 10px 40px rgba(0, 0, 0, .5); font-size: 14px; }
.kb-cookie.is-on { display: flex; }
.kb-cookie__btns { display: flex; gap: 8px; }
.kb-cookie__btns .kb-btn { flex: 1; }
.kb-toast { position: fixed; left: 50%; bottom: 150px; transform: translateX(-50%); background: var(--acc); color: var(--on-acc); font-weight: 700; padding: 10px 16px; border-radius: 12px; z-index: 99; opacity: 0; pointer-events: none; transition: opacity .2s; }
.kb-toast.is-on { opacity: 1; }

/* ---------- Планшет ---------- */
@media (min-width: 640px) {
  .kb-pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kb-games { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .kb-xgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kb-filters { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kb-footer__grid { grid-template-columns: 2fr repeat(5, minmax(0, 1fr)); }
  .kb-footer__grid > div:first-child { grid-column: auto; }
}

/* ---------- ПК ---------- */
@media (min-width: 1024px) {
  body { padding-bottom: 0; }
  .kb-bnav, .js-menu-open { display: none !important; }
  .kb-sticky-cta { display: none; }
  .has-sticky-cta { padding-bottom: 0; }
  .kb-cookie { left: auto; right: 24px; bottom: 24px; width: 420px; }
  .kb-toast { bottom: 40px; }
  .kb-header__bar { height: 68px; gap: 28px; }
  .kb-logo { font-size: 20px; }
  .kb-header__nav { display: block; }
  .kb-header__nav ul { list-style: none; display: flex; gap: 2px; margin: 0; padding: 0; }
  .kb-header__nav a { display: block; padding: 10px 12px; border-radius: 10px; color: var(--muted); font-size: 15px; }
  .kb-header__nav a:hover, .kb-header__nav .current-menu-item a { background: var(--card); color: var(--text); }
  .kb-header .kb-header__search { display: flex; width: 260px; height: 44px; border-radius: 12px; }
  .kb-header__search input { font-size: 14px; }
  .kb-header__actions .js-search-open { display: none; }
  .kb-games-bar { display: block; }
  .kb-games-bar nav { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px 0; }
  .kb-games-bar a { padding: 8px 12px; border-radius: 8px; color: var(--muted); font-size: 14px; }
  .kb-games-bar a:hover { color: var(--text); background: var(--card); }
  .kb-games-bar a.is-on { background: var(--acc); color: var(--on-acc); font-weight: 700; }

  .kb-main { padding: 20px 0 64px; }
  .kb-h1 { font-size: 36px; }
  .kb-h2 { font-size: 20px; }
  .kb-section { margin-top: 40px; }

  .kb-front-hero { display: grid; grid-template-columns: minmax(0, 1fr) 540px; gap: 48px; align-items: center; padding: 40px 0 32px; }
  .kb-front-hero .kb-h1 { font-size: 44px; }
  .kb-games { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .kb-front-hero .kb-game { min-height: 64px; align-items: flex-start; justify-content: space-between; padding: 10px 12px; font-size: 15px; border-top-width: 3px; }
  .kb-two { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
  .kb-two--half { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kb-pgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .kb-pgrid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kb-pcard { flex-direction: column; align-items: stretch; padding: 0; gap: 0; border-radius: 18px; }
  .kb-pcard__photo { width: 100%; height: 130px; border-radius: 0; border-bottom: 2px solid var(--acc); }
  .kb-pcard__body { padding: 14px; }
  .kb-tools { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .kb-toolcard { padding: 20px; }
  .kb-toolcard small { display: block; }
  .kb-devgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .kb-xgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kb-filters { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .kb-filters__actions { grid-column: auto / span 2; }

  /* Игрок: две колонки, левая закреплена */
  .kb-player { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 24px; align-items: start; }
  .kb-player__aside { position: sticky; top: 132px; display: flex; flex-direction: column; gap: 16px; }
  .kb-player__main { display: flex; flex-direction: column; gap: 32px; min-width: 0; }
  .kb-player__main .kb-section { margin-top: 0; }
  .kb-phero { margin: 0; height: 340px; border-radius: 20px 20px 0 0; }
  .kb-player-card { background: var(--card); border-radius: 20px; overflow: hidden; }
  .kb-player-card__body { padding: 16px; }
  .kb-player-card .kb-tile { background: var(--bg2); }
  .kb-player-card .kb-socials a { background: var(--bg2); }
  .kb-xh-maps { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; padding: 8px; }
  .kb-key4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .kb-key4 .kb-tile { padding: 16px 18px; border-radius: 16px; }
  .kb-key4 .kb-tile b { font-family: var(--display); font-size: 24px; }
  .kb-tabs { display: none; }
  .kb-tabpanels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .kb-tabpanel[hidden] { display: block; }
  .kb-tabpanel { margin: 0; }
  .kb-setgroup__title { padding: 14px 14px 6px; }
  .kb-devgrid--player { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .kb-dev-hero { grid-column: auto; flex-direction: column; align-items: stretch; }
  .kb-dev-hero .kb-devcard__img { width: 100%; height: 96px; margin-bottom: 6px; }
  .kb-devcard__img { height: 96px; }
  .kb-roster--grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; padding: 16px; }
  .kb-roster--grid > * { flex-direction: column; text-align: center; background: var(--bg2); border-radius: 14px; padding: 14px 8px; gap: 6px; }
  .kb-roster--grid .kb-ava { width: 52px; height: 52px; border-radius: 14px; }
  .kb-roster--grid .kb-roster__main b { justify-content: center; }
  .kb-roster--grid .is-me { border: 1px solid var(--acc); }
  .kb-team-stats { grid-auto-columns: minmax(0, 1fr); }
  .kb-hgrid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* ---------- Сводные страницы (pro) ---------- */
.kb-ava--xs { width: 28px; height: 28px; min-width: 28px; border-radius: 50%; font-size: 11px; }
.kb-bars { display: grid; gap: 8px; margin: 12px 0 20px; }
.kb-bars__row { display: grid; grid-template-columns: minmax(84px, 34%) 1fr 44px; align-items: center; gap: 10px; font-size: 14px; }
.kb-bars__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
.kb-bars__track { height: 10px; background: var(--card2); border-radius: 6px; overflow: hidden; }
.kb-bars__track span { display: block; height: 100%; background: var(--acc); border-radius: 6px; }
.kb-bars__row b { text-align: right; font-variant-numeric: tabular-nums; }
.kb-mini { display: inline-flex; align-items: center; gap: 6px; color: var(--text); text-decoration: none; }
.kb-mini b { font-weight: 600; }
.kb-mini-list { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 10px; align-items: center; }
.kb-rank { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 10px; counter-reset: rank; }
.kb-rank__item { counter-increment: rank; padding: 14px; }
.kb-rank__head { display: flex; align-items: center; gap: 10px; }
.kb-rank__head::before { content: counter(rank); min-width: 28px; height: 28px; border-radius: 8px; background: var(--card2); display: grid; place-items: center; font-weight: 700; font-size: 13px; }
.kb-rank__head a { flex: 1; min-width: 0; color: var(--text); text-decoration: none; overflow-wrap: anywhere; }
.kb-rank__img { width: 44px; height: 44px; object-fit: contain; border-radius: 8px; background: #fff; }
.kb-rank__pct { font-weight: 700; color: var(--acc); }
.kb-chips-list { display: grid; gap: 10px; }
.kb-link-card { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; color: var(--text); text-decoration: none; }
@media (min-width: 900px) {
  .kb-chips-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kb-rank { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.kb-prose .kb-rank, .kb-rank { padding-left: 0; margin-left: 0; }
.kb-prose .kb-rank li { margin: 0; }
.kb-prose a.kb-mini, a.kb-mini { color: var(--text); text-decoration: none; }
.kb-prose a.kb-mini:hover b { color: var(--acc); }
.kb-prose .kb-rank__head a { color: var(--text); text-decoration: none; }
@media (max-width: 899px) {
  .kb-table--dense tr { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 10px 12px; gap: 6px 10px; }
  .kb-table--dense td:last-child { grid-column: auto; }
}
.kb-code { background: var(--card); border: 1px solid var(--line2); border-radius: 12px; padding: 12px; margin: 12px 0 18px; }
.kb-code pre { margin: 0 0 10px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; line-height: 1.5; }
.kb-code code { background: none; padding: 0; color: var(--text); }

/* ---------- Составы: 5 игроков + тренер ---------- */
@media (min-width: 700px) { .kb-pgrid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .kb-pgrid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.kb-pcard.is-pending { opacity: .75; cursor: default; }
.kb-pcard.is-pending .kb-pcard__nick::after { content: "скоро"; margin-left: 6px; font-size: 11px; font-weight: 600; color: var(--muted); }
.kb-coach { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--card); border-radius: 14px; color: var(--text); text-decoration: none; max-width: 420px; }
.kb-coach span { display: flex; flex-direction: column; min-width: 0; }
.kb-coach small { color: var(--muted); font-size: 12px; }
.kb-coach b { font-size: 16px; }
.kb-coach.is-pending { opacity: .75; }
.kb-trow { display: flex; align-items: center; gap: 10px; padding: 10px 14px; color: var(--text); text-decoration: none; border-bottom: 1px solid var(--line2); }
.kb-trow:last-child { border-bottom: 0; }
.kb-trow b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-trow__rank { min-width: 34px; font-weight: 700; color: var(--acc); font-variant-numeric: tabular-nums; }
.kb-tag--inline { position: static; display: inline-block; vertical-align: 1px; font-size: 10px; padding: 2px 6px; border-radius: 6px; background: var(--acc); color: var(--on-acc, #0b0c0f); font-weight: 800; }
.kb-chip small { opacity: .7; margin-left: 4px; }

/* ---------- Турниры ---------- */
.kb-tour-head { margin-bottom: 16px; }
.kb-tour-head__top { display: flex; gap: 14px; align-items: center; padding: 18px; }
.kb-badge { display: inline-block; font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 6px; background: var(--card2); color: var(--muted); text-transform: uppercase; letter-spacing: .02em; }
.kb-badge--ongoing { background: #ff4d5e; color: #fff; }
.kb-badge--upcoming { background: var(--acc); color: var(--on-acc, #0b0c0f); }
.kb-trn { gap: 12px; }
.kb-trn > span { flex: 1; min-width: 0; }
.kb-trn b { overflow: hidden; text-overflow: ellipsis; }
.kb-tour-head .kb-team-stats b { font-size: 15px; overflow-wrap: anywhere; }
.kb-trn .kb-tlogo { flex: 0 0 40px; width: 40px; height: 40px; }
@media (max-width: 699px) {
  .kb-tour-head .kb-team-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: row; }
  .kb-tour-head .kb-team-stats > div:nth-child(2n) { border-right: 0; }
}

/* ---------- Команда: рейтинг, форма; игрок: картинка прицела ---------- */
.kb-chart { width: 100%; height: auto; display: block; }
.kb-chart__grid { stroke: var(--line2); stroke-width: 1; }
.kb-chart__axis { fill: var(--muted); font-size: 11px; }
.kb-chart__line { fill: none; stroke: var(--acc); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.kb-chart__dot { fill: var(--card); stroke: var(--acc); stroke-width: 2; }
.kb-chart__dot.is-last { fill: var(--acc); }
.kb-chart__val { fill: var(--text); font-size: 13px; font-weight: 700; }
.kb-form-dots { display: flex; gap: 6px; flex-wrap: wrap; }
.kb-form-dots span { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-weight: 800; font-size: 12px; }
.kb-form-dots .is-w { background: rgba(74, 222, 128, .18); color: #4ade80; }
.kb-form-dots .is-l { background: rgba(255, 77, 94, .16); color: #ff6b78; }
.kb-c-win { color: #4ade80; }
.kb-c-loss { color: #ff6b78; }
.kb-xh-png { display: flex; align-items: center; gap: 10px; margin-top: 10px; color: var(--text); text-decoration: none; font-size: 14px; }
.kb-xh-png img { border-radius: 8px; flex: 0 0 56px; }
.kb-xh-png span { display: flex; flex-direction: column; }
.kb-xh-png small { color: var(--muted); font-size: 12px; }
.kb-tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kb-chart { max-width: 560px; margin: 0 auto; }

/* ---------- Герои Dota 2 ---------- */
.kb-hero-head { display: flex; flex-direction: column; overflow: hidden; margin-bottom: 16px; }
.kb-hero-head__img img { width: 100%; height: auto; display: block; aspect-ratio: 256 / 144; object-fit: cover; }
.kb-hero-head__body { padding: 16px; }
@media (min-width: 800px) {
  .kb-hero-head { flex-direction: row; }
  .kb-hero-head__img { flex: 0 0 360px; }
  .kb-hero-head__body { align-self: center; }
}
.kb-herogrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 700px) { .kb-herogrid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.kb-herocard { display: flex; flex-direction: column; background: var(--card); border-radius: 10px; overflow: hidden; color: var(--text); text-decoration: none; }
.kb-herocard img, .kb-herocard__ph { width: 100%; aspect-ratio: 256 / 144; object-fit: cover; display: grid; place-items: center; background: var(--card2); font-weight: 800; }
.kb-herocard b { font-size: 12px; padding: 6px 8px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-herocard small { font-size: 11px; color: var(--muted); padding: 0 8px 6px; }
.kb-herocard b:last-child { padding-bottom: 6px; }
.kb-hcard { text-decoration: none; color: var(--text); }
.kb-hcard__art img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: block; }
.kb-ability { display: flex; gap: 12px; padding: 12px 14px; align-items: flex-start; }
.kb-ability__icon { position: relative; flex: 0 0 56px; width: 56px; height: 56px; border-radius: 8px; overflow: hidden; background: var(--card2); display: grid; place-items: center; }
.kb-ability__icon i { font-style: normal; font-weight: 700; font-size: 22px; color: var(--gold); }
.kb-ability__icon img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kb-ability__tags { display: block; margin-top: 2px; font-size: 12px; color: var(--gold); }
.kb-ability p { margin: 4px 0; font-size: 14px; line-height: 1.5; }
.kb-build { margin-bottom: 12px; }
.kb-build > small { display: block; color: var(--muted); margin-bottom: 6px; }
.kb-build__items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 700px) { .kb-build__items { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.kb-item { display: flex; flex-direction: column; align-items: center; gap: 4px; background: var(--card); border-radius: 10px; padding: 8px 6px; text-align: center; }
.kb-item img { width: 100%; max-width: 64px; height: auto; border-radius: 6px; }
.kb-item small { font-size: 11px; line-height: 1.25; color: var(--text); }

/* Конвертер сенсы: список пар */
.kb-sens-pairs { display: grid; gap: 10px; margin-top: 14px; }
.kb-sens-pairs__row { display: grid; gap: 6px; }
.kb-sens-pairs__row > b { font-size: 14px; }
.kb-sens-pairs__row > span { display: flex; flex-wrap: wrap; gap: 6px; }
a.kb-tile { color: inherit; text-decoration: none; }
a.kb-tile:hover { border-color: var(--acc); }

.kb-xh-view--val { background: radial-gradient(circle at 50% 45%, #3a3f4a, #1b1e25 70%); }
.kb-xh-view.kb-xh-view--val::before, .kb-xh-view.kb-xh-view--val::after { display: none; }

/* Преимущества девайса */
.kb-pros { list-style: none; margin: 0; padding: 6px 14px; }
.kb-pros li { position: relative; padding: 9px 0 9px 28px; border-bottom: 1px solid var(--line); font-size: 15px; }
.kb-pros li:last-child { border-bottom: 0; }
.kb-pros li::before { content: ''; position: absolute; left: 2px; top: 13px; width: 14px; height: 8px; border-left: 2px solid var(--win); border-bottom: 2px solid var(--win); transform: rotate(-45deg); }

/* Генератор прицела */
.kb-xg { display: grid; gap: 12px; }
.kb-xg-stick { position: sticky; top: 60px; z-index: 20; background: var(--card); border-radius: var(--r); overflow: hidden; box-shadow: 0 8px 20px rgba(0,0,0,.35); }
.kb-xg-view { height: 170px; }
.kb-xg-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.kb-xg-bar .kb-xh-maps { flex: 1 1 100%; padding: 6px; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 2px; }
.kb-xg-bar .kb-xh-maps button { min-height: 30px; font-size: 12px; padding: 0 2px; }
.kb-xg-zoom { display: flex; align-items: center; gap: 8px; padding: 0 10px 8px; font-size: 13px; color: var(--muted); }
.kb-xg-zoom select, .kb-xg-row select { background: var(--bg2); color: var(--text); border: 1px solid var(--line2); border-radius: 8px; padding: 6px 8px; font: inherit; }
.kb-xg-out { display: grid; gap: 8px; }
.kb-codeline--small { font-size: 12px; max-height: 120px; overflow: auto; }
.kb-xg-form { display: grid; gap: 14px; }
.kb-xg-row { display: grid; gap: 6px; font-size: 14px; }
.kb-xg-row > span { display: flex; justify-content: space-between; color: var(--soft); }
.kb-xg-row > span b { color: var(--text); font-variant-numeric: tabular-nums; }
.kb-xg-row input[type=range] { width: 100%; accent-color: var(--acc); height: 28px; }
.kb-xg-row input[type=color] { width: 64px; height: 36px; border: 0; background: none; padding: 0; }
.kb-xg-check { display: flex; align-items: center; gap: 10px; font-size: 14px; min-height: 32px; }
.kb-xg-check input { width: 20px; height: 20px; accent-color: var(--acc); }
.kb-xg-h { margin: 6px 0 0; font-size: 15px; }
.kb-input { width: 100%; box-sizing: border-box; background: var(--bg2); color: var(--text); border: 1px solid var(--line2); border-radius: 10px; padding: 12px; font: 14px var(--mono); }
.kb-xh-legacy { font-size: 13px; color: var(--muted); background: rgba(242,193,78,.08); border: 1px solid rgba(242,193,78,.3); border-radius: 10px; padding: 10px 12px; }
.kb-xh-legacy a { color: var(--gold); }
@media (min-width: 900px) { .kb-xg { grid-template-columns: 1fr 1fr; align-items: start; } .kb-xg-stick { grid-row: span 3; } .kb-xg-view { height: 260px; } }
.kb-xg-row[hidden] { display: none; }

/* Трофеи и награды */
.kb-h3 { font-size: 15px; margin: 14px 0 8px; color: var(--soft); font-weight: 600; }
.kb-more > summary { padding: 12px 14px; color: var(--acc); cursor: pointer; font-size: 14px; list-style: none; }
.kb-more > summary::-webkit-details-marker { display: none; }
.kb-more[open] > summary { border-bottom: 1px solid var(--line); }

/* Сетап как у про */
.kb-setup-head { display: flex; gap: 14px; align-items: center; padding: 14px; }
.kb-ava--64 { width: 64px; height: 64px; flex: 0 0 64px; }
.kb-setup-total { margin-top: 12px; display: grid; gap: 2px; text-align: center; }
.kb-setup-total small { color: var(--muted); }
.kb-setup-total b { font-family: var(--display); font-size: 28px; color: var(--acc); }
.kb-setup-total span { font-size: 12px; }
.kb-setup-list { display: grid; gap: 10px; }
.kb-setup-dev { display: flex; gap: 12px; padding: 12px; align-items: flex-start; }
.kb-setup-dev__img { flex: 0 0 96px; width: 96px; height: 96px; border-radius: 12px; background: #fff; display: grid; place-items: center; overflow: hidden; color: #333; }
.kb-setup-dev__img img { width: 100%; height: 100%; object-fit: contain; }
.kb-setup-dev__body { flex: 1; min-width: 0; display: grid; gap: 4px; }
.kb-setup-dev__body > small { color: var(--muted); font-size: 12px; }
.kb-setup-dev__name { font-weight: 700; color: var(--text); text-decoration: none; font-size: 16px; }
.kb-setup-dev__specs { margin: 2px 0; padding-left: 16px; color: var(--soft); font-size: 13px; }
.kb-setup-dev .kb-shop { margin-top: 6px; }
.kb-setup-dev .kb-shop .kb-btn { width: 100%; }
.kb-budget { margin-bottom: 10px; }
.kb-budget > summary { display: flex; justify-content: space-between; align-items: center; padding: 14px; cursor: pointer; list-style: none; }
.kb-budget > summary::-webkit-details-marker { display: none; }
.kb-budget .kb-setup-list { padding: 0 10px 10px; }
@media (min-width: 900px) { .kb-setup-list { grid-template-columns: 1fr 1fr; } }

/* Мета */
.kb-meta-filter { margin: 4px 0 6px; }
.kb-meta-filter button { border: 0; cursor: pointer; font: inherit; }
.kb-meta-tier__h { display: flex; align-items: center; gap: 10px; font-size: 17px; margin: 0 0 10px; }
.kb-tier { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; font-family: var(--display); font-weight: 700; font-size: 16px; color: #111; }
.kb-tier--s { background: #FF6B6B; } .kb-tier--a { background: #FFB547; } .kb-tier--b { background: #F2E14E; } .kb-tier--c { background: #8FB7FF; } .kb-tier--d { background: #8a8f98; }
.kb-meta-grid { display: grid; gap: 8px; }
.kb-meta-card { display: flex; align-items: center; gap: 12px; background: var(--card); border-radius: 12px; padding: 8px 12px 8px 8px; color: inherit; text-decoration: none; }
.kb-meta-card[hidden] { display: none; }
.kb-meta-card__img { flex: 0 0 64px; width: 64px; height: 40px; border-radius: 8px; overflow: hidden; background: var(--card2); display: grid; place-items: center; font-weight: 700; }
.kb-meta-card__img img { width: 100%; height: 100%; object-fit: cover; }
.kb-meta-card__body { flex: 1; min-width: 0; display: grid; }
.kb-meta-card__body b { font-size: 15px; }
.kb-meta-card__body b span { font-size: 12px; margin-left: 4px; }
.kb-meta-card__body small { color: var(--muted); font-size: 12px; }
.kb-meta-card__wr { font-weight: 700; font-variant-numeric: tabular-nums; }
.kb-meta-move-h { padding: 12px 14px 4px; font-weight: 600; color: var(--soft); }
.kb-meta-badge { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 10px; color: var(--soft); text-decoration: none; font-size: 14px; }
.kb-meta-badge .kb-tier { width: 26px; height: 26px; font-size: 13px; border-radius: 8px; }
@media (min-width: 900px) { .kb-meta-grid { grid-template-columns: repeat(3, 1fr); } }

/* Справочник: карты и оружие */
.kb-wiki-maps { display: grid; gap: 10px; }
.kb-wiki-map { position: relative; display: block; border-radius: var(--r); overflow: hidden; aspect-ratio: 16 / 7; background: var(--card); color: #fff; text-decoration: none; }
.kb-wiki-map img { width: 100%; height: 100%; object-fit: cover; }
.kb-wiki-map span { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 14px 12px; background: linear-gradient(transparent, rgba(0,0,0,.85)); display: grid; }
.kb-wiki-map b { font-family: var(--display); font-size: 20px; }
.kb-wiki-map small { color: #d6d9df; font-size: 12px; }
.kb-wiki-hero { border-radius: var(--r); overflow: hidden; margin-bottom: 8px; }
.kb-wiki-hero img { width: 100%; height: auto; display: block; }
.kb-minimap { position: relative; max-width: 560px; margin: 0 auto; background: var(--card); border-radius: var(--r); overflow: hidden; aspect-ratio: 1 / 1; }
.kb-minimap img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.kb-minimap__pt { position: absolute; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; pointer-events: none; }
.kb-minimap__pt i { width: 6px; height: 6px; border-radius: 50%; background: var(--acc); box-shadow: 0 0 0 2px rgba(0,0,0,.6); }
.kb-minimap__pt em { font-style: normal; font-size: 9px; line-height: 1.1; color: #fff; text-shadow: 0 1px 2px #000, 0 0 3px #000; white-space: nowrap; margin-top: 1px; }
.kb-minimap.is-nolabels em { display: none; }
.kb-wiki-zones { display: grid; gap: 10px; }
.kb-wiki-zones b { color: var(--acc); }
.kb-wiki-zones p { margin: 2px 0 0; color: var(--soft); font-size: 14px; }
.kb-wiki-weapon { padding: 14px; display: grid; gap: 8px; text-align: center; }
.kb-wiki-weapon__img img { max-width: 100%; height: auto; max-height: 140px; object-fit: contain; }
.kb-wiki-wrow__img { flex: 0 0 72px; width: 72px; height: 36px; display: grid; place-items: center; }
.kb-wiki-wrow__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.kb-wiki-skins { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kb-wiki-skins figure { margin: 0; background: var(--card); border-radius: 12px; padding: 10px; text-align: center; }
.kb-wiki-skins img { width: 100%; height: 60px; object-fit: contain; }
.kb-wiki-skins figcaption { font-size: 12px; color: var(--soft); margin-top: 4px; }
@media (min-width: 900px) { .kb-wiki-maps { grid-template-columns: 1fr 1fr; } .kb-wiki-skins { grid-template-columns: repeat(4, 1fr); } }
a.kb-btn, a.kb-chip { text-decoration: none; }

/* Выбор игрока с поиском */
.kb-picker { position: relative; }
.kb-picker label { display: grid; gap: 6px; font-size: 14px; color: var(--soft); }
.kb-picker.is-picked .kb-input { border-color: var(--acc); }
.kb-picker.is-error .kb-input { border-color: var(--lose); }
.kb-picker__list { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; margin-top: 4px; background: var(--card2); border: 1px solid var(--line2); border-radius: 12px; overflow: hidden; box-shadow: 0 10px 24px rgba(0,0,0,.45); }
.kb-picker__list button { display: flex; width: 100%; justify-content: space-between; gap: 10px; align-items: baseline; padding: 12px 14px; background: none; border: 0; border-bottom: 1px solid var(--line); color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.kb-picker__list button:last-child { border-bottom: 0; }
.kb-picker__list button.is-on, .kb-picker__list button:hover { background: rgba(255,255,255,.06); }
.kb-picker__list small { color: var(--muted); font-size: 12px; }
.kb-picker__none { padding: 12px 14px; color: var(--muted); font-size: 14px; }
.kb-compare-games { margin-bottom: 10px; }
.kb-tool.js-picker-form { display: grid; gap: 12px; }

/* Dota: статистика из OpenDota */
.kb-od-rank { display: flex; align-items: center; gap: 12px; padding: 12px 14px; }
.kb-od-rank__medal { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: rgba(242,193,78,.12); color: var(--gold); }
.kb-od-rank b { display: block; font-size: 17px; }
.kb-od-rank small { color: var(--muted); font-size: 13px; }
.kb-od-lane-wr { display: block; margin: -4px 0 6px; font-size: 12px; }
.kb-tile em { display: block; font-style: normal; font-size: 12px; margin-top: 2px; }

/* ---------- Рейтинг Valve (VRS) ---------- */
.kb-vrs__row { display: flex; align-items: center; gap: 10px; padding: 10px 14px; color: var(--text); text-decoration: none; border-bottom: 1px solid var(--line2); }
.kb-vrs__row:last-child { border-bottom: 0; }
.kb-vrs__rank { min-width: 42px; display: flex; flex-direction: column; font-variant-numeric: tabular-nums; line-height: 1.2; }
.kb-vrs__rank b { color: var(--acc); }
.kb-vrs__rank span { font-size: 11px; }
.kb-vrs__name { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.kb-vrs__name b, .kb-vrs__name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-vrs__name small { color: var(--muted); font-size: 12px; }
.kb-vrs__pts { text-align: right; display: flex; flex-direction: column; font-variant-numeric: tabular-nums; line-height: 1.2; }
.kb-vrs__pts small { font-size: 11px; }
.kb-vrs-new { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--gold); }
.kb-trow__pts { margin-left: auto; font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.kb-trow__pts span { font-size: 11px; }
.kb-team-stats__d { display: inline !important; font-size: 11px !important; }
.kb-tile b em { font-style: normal; font-size: 12px; font-weight: 600; }

/* ---------- Большие гайды ---------- */
.kb-prose h2[id], .kb-prose h3[id] { scroll-margin-top: 80px; }
.kb-toc { background: var(--card); border-radius: 14px; padding: 14px 16px; margin: 18px 0 24px; }
.kb-toc b { display: block; color: var(--text); font-family: var(--display); font-weight: 500; margin-bottom: 6px; }
.kb-toc ol { margin: 0; padding-left: 22px; }
.kb-toc li { margin: 6px 0; }
.kb-toc a { color: var(--soft); text-decoration: none; }
.kb-toc a:hover { color: var(--acc); }
.kb-takeaways { border-left: 3px solid var(--acc); background: color-mix(in srgb, var(--acc) 7%, var(--card)); border-radius: 0 14px 14px 0; padding: 12px 16px; margin: 16px 0; }
.kb-takeaways b { color: var(--text); }
.kb-takeaways ul { margin: 6px 0 0; }
.kb-note-box { border-radius: 12px; padding: 12px 14px; margin: 14px 0; background: var(--card); border: 1px solid var(--line); }
.kb-note-box b { color: var(--text); }
.kb-note-box--tip { border-color: color-mix(in srgb, var(--acc) 45%, var(--line)); }
.kb-note-box--warn { border-color: color-mix(in srgb, #e5484d 55%, var(--line)); }
.kb-code__cap { font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.kb-prose .kb-table-wrap { overflow-x: auto; }
.kb-updated { font-size: 13px; color: var(--muted); }
.kb-h1-alt { font-size: .5em; font-weight: 500; color: var(--muted); white-space: nowrap; }

/* ---------- Скины CS2 и предметы Dota 2 ---------- */
.kb-skfilters { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.kb-skgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.kb-skcard { --rar: var(--line2); display: flex; flex-direction: column; gap: 4px; min-width: 0; background: var(--card); border-radius: 14px; padding: 10px; border-top: 3px solid var(--rar); }
.kb-skcard:hover { background: var(--card2); }
.kb-skcard__img { display: flex; align-items: center; justify-content: center; height: 96px; border-radius: 10px; background: radial-gradient(circle at 50% 60%, color-mix(in srgb, var(--rar) 22%, transparent), transparent 70%), var(--bg2); }
.kb-skcard__img img { max-height: 88px; width: auto; object-fit: contain; }
.kb-skcard small { font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-skcard b { font-size: 14px; line-height: 1.25; overflow-wrap: anywhere; }
.kb-skcard__price { display: flex; justify-content: space-between; gap: 6px; font-size: 13px; margin-top: auto; padding-top: 2px; }

.kb-skhead { --rar: var(--acc); display: flex; flex-direction: column; gap: 12px; background: var(--card); border-radius: var(--r-lg); padding: 14px; border-top: 3px solid var(--rar); }
.kb-skhead__img { display: flex; align-items: center; justify-content: center; min-height: 180px; border-radius: 12px; background: radial-gradient(circle at 50% 55%, color-mix(in srgb, var(--rar) 28%, transparent), transparent 70%), var(--bg2); }
.kb-skhead__img img { max-height: 240px; width: auto; object-fit: contain; }
.kb-skhead .kb-h1 { margin: 6px 0 2px; }
.kb-skhead__en { margin: 0; color: var(--muted); font-size: 14px; }
.kb-skhead__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.kb-skrar, .kb-sktag { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--bg2); }
.kb-skrar { color: var(--rar); border: 1px solid color-mix(in srgb, var(--rar) 55%, transparent); }
.kb-sktag:hover { background: var(--card2); }
.kb-skhead__from { margin: 10px 0 0; font-size: 15px; }
.kb-skhead__from b { font-family: var(--display); font-size: 24px; color: var(--acc); margin-right: 6px; }

.kb-skpick { display: flex; flex-direction: column; gap: 10px; }
.kb-skpick .kb-chip { border: 0; cursor: pointer; color: var(--text); }
.kb-skpick .kb-chip.is-on { color: var(--on-acc); }
.kb-skwears { display: grid; grid-template-columns: repeat(auto-fit, minmax(62px, 1fr)); gap: 6px; }
.kb-skwear { display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 52px; padding: 6px 4px; border-radius: 12px; border: 1px solid var(--line2); background: var(--card); cursor: pointer; }
.kb-skwear span { font-size: 12px; color: var(--muted); font-weight: 600; }
.kb-skwear b { font-size: 12px; white-space: nowrap; }
.kb-skwear.is-on { border-color: var(--acc); background: color-mix(in srgb, var(--acc) 12%, var(--card)); }
.kb-skvar { margin-top: 16px; }
.kb-skvar__name { margin: 0 0 8px; font-weight: 600; color: var(--soft); }
.kb-skvar .kb-tile b { font-size: 17px; }

.kb-offers { display: flex; flex-direction: column; gap: 8px; }
.kb-offer { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 4px 12px; background: var(--card); border-radius: 14px; padding: 12px; border: 1px solid transparent; }
.kb-offer--best { border-color: color-mix(in srgb, var(--acc) 45%, transparent); }
.kb-offer__main { display: flex; flex-direction: column; min-width: 0; }
.kb-offer__main small { font-size: 12px; color: var(--muted); }
.kb-offer__price { display: flex; flex-direction: column; align-items: flex-end; }
.kb-offer__price b { white-space: nowrap; }
.kb-offer__price small { font-size: 11px; color: var(--dim); }
.kb-offer .kb-ad { grid-column: 1 / -1; }

.kb-skchart .kb-chart__line { stroke-width: 2.5; }
.kb-skchart__steam { fill: none; stroke: var(--muted); stroke-width: 1.5; stroke-dasharray: 4 4; }
.kb-sklegend { display: flex; gap: 16px; margin: 8px 0 0; font-size: 12px; color: var(--muted); }
.kb-sklegend span::before { content: ''; display: inline-block; width: 16px; height: 0; border-top: 2.5px solid var(--acc); vertical-align: middle; margin-right: 6px; }
.kb-sklegend .kb-sklegend__steam::before { border-top: 1.5px dashed var(--muted); }
.kb-sktiles { margin-top: 10px; }
.kb-skprices td small { display: block; }
.kb-skprices td + td { white-space: nowrap; }
.kb-skchart .kb-chart__axis { font-size: 10px; }

@media (min-width: 700px) {
  .kb-skgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kb-skhead { flex-direction: row; align-items: center; }
  .kb-skhead__img { flex: 0 0 300px; }
  .kb-skfilters { grid-template-columns: 2fr 1fr 1fr; }
  .kb-skfilters .kb-filters__actions { grid-column: auto; align-self: end; }
}
@media (min-width: 1024px) {
  .kb-skgrid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .kb-two .kb-skgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.kb-stgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kb-stcard { display: flex; flex-direction: column; gap: 2px; min-width: 0; background: var(--card); border-radius: 14px; padding: 10px; }
.kb-stcard:hover { background: var(--card2); }
.kb-stcard__img { display: flex; align-items: center; justify-content: center; height: 76px; border-radius: 10px; background: var(--bg2); margin-bottom: 4px; }
.kb-stcard__img img { max-height: 70px; width: auto; }
.kb-stcard b { font-size: 13px; }
.kb-stcard small { font-size: 12px; color: var(--muted); }
.kb-stcard__price { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; margin-top: 4px; font-weight: 700; }
.kb-stcard__price small { font-weight: 400; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-stmore > .kb-stgrid { margin-top: 8px; }
.kb-stmore summary { cursor: pointer; color: var(--acc); font-weight: 600; padding: 11px; margin-top: 8px; list-style: none; text-align: center; background: var(--card); border-radius: 12px; }
.kb-stmore summary::-webkit-details-marker { display: none; }
.kb-stmore__close, .kb-stmore[open] .kb-stmore__open { display: none; }
.kb-stmore[open] .kb-stmore__close { display: inline; }
@media (min-width: 700px) { .kb-stgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.kb-invform { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.kb-invform__label { font-size: 13px; color: var(--muted); }
.kb-invout { margin-top: 16px; }
.kb-invres { display: flex; flex-direction: column; gap: 8px; }
.kb-invres__who { display: flex; align-items: center; gap: 10px; }
.kb-invres__who img { border-radius: 50%; }
.kb-invres__who span { display: flex; flex-direction: column; }
.kb-invres__who small { color: var(--muted); font-size: 13px; }
.kb-invres__total { font-family: var(--display); font-size: 30px; color: var(--acc); line-height: 1.1; }
.kb-invlist { display: flex; flex-direction: column; gap: 6px; }
.kb-invitem { --rar: var(--line2); display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: var(--card); border-left: 3px solid var(--rar); }
.kb-invitem.is-more { display: none; }
.kb-invitem__img { display: flex; align-items: center; justify-content: center; height: 48px; border-radius: 8px; background: var(--bg2); }
.kb-invitem__img img { max-height: 44px; width: auto; }
.kb-invitem__name { display: flex; flex-direction: column; min-width: 0; }
.kb-invitem__name b { font-size: 14px; overflow-wrap: anywhere; }
.kb-invitem__name small, .kb-invitem__price small { font-size: 12px; }
.kb-invitem__price { display: flex; flex-direction: column; align-items: flex-end; white-space: nowrap; }
.kb-invitem__price small { color: var(--muted); }

/* ---------- Патчноуты ---------- */
.kb-pncard { display: flex; flex-direction: column; gap: 4px; }
.kb-pncard:hover { background: var(--card2); }
.kb-pncard b { font-size: 16px; }
.kb-pncard ul { margin: 4px 0 0; padding-left: 18px; color: var(--soft); font-size: 14px; }
.kb-pnotes { margin: 6px 0 14px; padding-left: 20px; }
.kb-pnotes li { margin: 4px 0; }
.kb-pnotes .kb-pn--i1 { margin-left: 18px; list-style: circle; }
.kb-pnotes .kb-pn--i2, .kb-pnotes .kb-pn--i3 { margin-left: 36px; list-style: square; }
.kb-pnhero { border-top: 1px solid var(--line); padding-top: 6px; }
.kb-pnhero .kb-h3 a { color: var(--acc); text-decoration: none; }
.kb-pnheroes { line-height: 1.9; font-size: 14px; }
.kb-pnbox { margin-bottom: 10px; }
.kb-pnbox__ver { display: inline-block; color: var(--acc); font-weight: 700; margin-bottom: 6px; }
.kb-pnbox__ab { display: block; margin-top: 8px; }
.kb-pnbox .kb-pnotes { margin-bottom: 4px; }

/* ---------- Предметы Dota 2 ---------- */
.kb-itemgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kb-itemcard { display: flex; flex-direction: column; gap: 4px; min-width: 0; background: var(--card); border-radius: 12px; padding: 8px; }
.kb-itemcard:hover { background: var(--card2); }
.kb-itemcard img { width: 100%; height: auto; aspect-ratio: 88 / 64; object-fit: cover; border-radius: 8px; }
.kb-itemcard b { font-size: 13px; line-height: 1.25; overflow-wrap: anywhere; }
.kb-itemcard small { font-size: 12px; color: var(--gold); }
.kb-itemcard__ph { display: block; width: 100%; aspect-ratio: 88 / 64; border-radius: 8px; background: var(--bg2); }
.kb-itemhead { display: flex; gap: 14px; align-items: center; }
.kb-itemhead__img img { width: 110px; height: auto; border-radius: 10px; }
a.kb-item:hover small { color: var(--acc); }
.kb-item--recipe .kb-itemcard__ph { width: 64px; height: 47px; }
@media (min-width: 700px) { .kb-itemgrid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

/* ---------- Ники для игр ---------- */
.kb-nickgen { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.kb-nickgen__opts { margin: 0; }
.kb-nicklist { display: flex; flex-wrap: wrap; gap: 8px; }
.kb-nick { min-height: 40px; padding: 0 14px; border-radius: 10px; border: 1px solid var(--line2); background: var(--card); color: var(--text); font: 600 15px var(--font); cursor: pointer; max-width: 100%; overflow-wrap: anywhere; }
.kb-nick:hover, .kb-nick:active { border-color: var(--acc); color: #fff; }
.kb-symgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(48px, 1fr)); gap: 6px; }
.kb-sym { height: 48px; border-radius: 10px; border: 1px solid var(--line2); background: var(--card); color: var(--text); font-size: 22px; cursor: pointer; }
.kb-sym:hover, .kb-sym:active { border-color: var(--acc); }
.kb-fonts { display: flex; flex-direction: column; gap: 10px; }
.kb-fontlist { display: flex; flex-direction: column; gap: 6px; }
.kb-fontrow { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line2); background: var(--bg2); color: var(--text); cursor: pointer; }
.kb-fontrow small { color: var(--muted); font-size: 12px; }
.kb-fontrow span { font-size: 18px; overflow-wrap: anywhere; max-width: 100%; }
.kb-fontrow:hover, .kb-fontrow:active { border-color: var(--acc); }

/* Подборки скинов */
.kb-pkweapons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kb-pkweapon { display: flex; flex-direction: column; gap: 2px; min-width: 0; background: var(--card); border-radius: 14px; padding: 10px; text-decoration: none; color: var(--text); }
.kb-pkweapon:hover { background: var(--card2); }
.kb-pkweapon__img { display: flex; align-items: center; justify-content: center; height: 64px; margin-bottom: 4px; }
.kb-pkweapon__img img { max-height: 60px; width: auto; object-fit: contain; }
.kb-pkweapon b { font-size: 14px; overflow-wrap: anywhere; }
.kb-pkweapon small { font-size: 12px; color: var(--muted); }
.kb-pkcheap { padding: 4px 12px; }
.kb-pkcheap__row { display: grid; grid-template-columns: 22px 64px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.kb-pkcheap__row:last-child { border-bottom: 0; }
.kb-pkcheap__n { color: var(--muted); font-size: 13px; text-align: center; }
.kb-pkcheap__img img { width: 64px; height: 48px; object-fit: contain; }
.kb-pkcheap__name { min-width: 0; display: flex; flex-direction: column; font-size: 14px; }
.kb-pkcheap__name > a { overflow-wrap: anywhere; }
.kb-pkcheap__name small { color: var(--muted); font-size: 12px; }
.kb-pkcheap__row > b { white-space: nowrap; font-size: 14px; }
.kb-pkcolors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.kb-pkcolor { display: flex; flex-direction: column; gap: 2px; background: var(--card); border-radius: 14px; padding: 12px; text-decoration: none; color: var(--text); }
.kb-pkcolor:hover { background: var(--card2); }
.kb-pkcolor i { width: 28px; height: 28px; border-radius: 50%; background: var(--sw); border: 2px solid var(--line2); margin-bottom: 4px; }
.kb-pkcolor small { font-size: 12px; color: var(--muted); }
.kb-swatch { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--sw); border: 1px solid var(--line2); }
.kb-sksets { display: grid; gap: 8px; }
.kb-skset { display: grid; gap: 8px; background: var(--card); border-radius: 14px; padding: 10px; }
.kb-skset__imgs { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 4px; }
.kb-skset__imgs > span { color: var(--muted); font-weight: 700; }
.kb-skset__img { display: flex; align-items: center; justify-content: center; height: 84px; border-radius: 10px; background: var(--bg2); }
.kb-skset__img img { max-height: 78px; width: auto; max-width: 100%; object-fit: contain; }
.kb-skset__body { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; font-size: 13px; align-items: baseline; }
.kb-skset__body a { overflow-wrap: anywhere; }
.kb-skset__body small { color: var(--muted); white-space: nowrap; }
.kb-skset__body b { grid-column: 1 / -1; font-size: 15px; margin-top: 4px; }
@media (min-width: 700px) {
  .kb-pkweapons, .kb-pkcolors { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kb-sksets { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Онлайн в играх */
.kb-live-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 0 3px color-mix(in srgb, #3ddc84 25%, transparent); flex: none; }
.kb-onl-now { display: flex; flex-direction: column; gap: 2px; padding: 16px; margin-top: 12px; }
.kb-onl-now__label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 14px; }
.kb-onl-now b { font-size: 40px; line-height: 1.1; letter-spacing: -0.5px; }
.kb-onl-now small { color: var(--muted); font-size: 12px; }
.kb-onl-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.kb-onl-stats > div { display: flex; flex-direction: column; gap: 2px; padding: 12px; }
.kb-onl-stats small { color: var(--muted); font-size: 12px; }
.kb-onl-stats b { font-size: 20px; }
.kb-onl-days { padding: 4px 12px; }
.kb-onl-days__row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 14px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.kb-onl-days__row span:not(:first-child) { text-align: right; min-width: 72px; }
.kb-onl-days__row:last-child { border-bottom: 0; }
.kb-onl-days__head { color: var(--muted); font-size: 12px; }
.kb-onl-list { display: grid; gap: 8px; margin-top: 12px; }
.kb-onl-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 12px 14px; background: var(--card); border-radius: 14px; border-left: 3px solid var(--acc); text-decoration: none; color: var(--text); }
.kb-onl-row:hover { background: var(--card2); }
.kb-onl-row__now { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 18px; }
.kb-onl-row small { grid-column: 1 / -1; color: var(--muted); font-size: 12px; }
@media (min-width: 700px) { .kb-onl-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Раздачи бесплатных игр */
.kb-frees { display: grid; gap: 10px; }
.kb-free { display: flex; flex-direction: column; background: var(--card); border-radius: 14px; overflow: hidden; min-width: 0; }
.kb-free__img { position: relative; display: block; aspect-ratio: 460 / 215; background: var(--bg2); }
.kb-free__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kb-free__plat { position: absolute; left: 8px; top: 8px; padding: 3px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; background: rgba(0,0,0,.72); color: #fff; }
.kb-free--steam .kb-free__plat { background: #1b2838; }
.kb-free__body { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px 12px; }
.kb-free__body b { font-size: 16px; overflow-wrap: anywhere; }
.kb-free__body small { color: var(--muted); font-size: 12px; }
.kb-free__time { font-size: 14px; font-weight: 600; color: var(--acc); }
.kb-free__body .kb-btn { margin-top: 6px; }
.kb-frees--past .kb-free__body b { font-size: 14px; }
@media (min-width: 700px) { .kb-frees { grid-template-columns: repeat(3, minmax(0, 1fr)); } .kb-frees--past { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Калькулятор контрактов */
.kb-tu { padding: 12px; margin-top: 12px; }
.kb-tu__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.kb-tu__st { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.kb-tu__label { color: var(--muted); font-size: 13px; margin: 12px 0 6px; }
.kb-tu__rar .kb-chip { border: 0; cursor: pointer; color: var(--text); }
.kb-tu__rar .kb-chip[disabled] { opacity: .4; cursor: default; }
.kb-tu__slots { display: grid; gap: 6px; margin-bottom: 8px; }
.kb-tu__slot { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 8px; align-items: center; background: var(--bg2); border-radius: 12px; padding: 6px 8px; }
.kb-tu__slot img, .kb-tu__opt img, .kb-tu__out img { object-fit: contain; }
.kb-tu__slotname { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 13px; }
.kb-tu__slotname a { overflow-wrap: anywhere; color: var(--text); }
.kb-tu__slotname small { color: var(--muted); font-size: 11px; }
.kb-tu__slotname label { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.kb-tu input[type=number], .kb-tu input[type=search] { background: var(--card); color: var(--text); border: 1px solid var(--line2); border-radius: 8px; padding: 6px 8px; font-size: 16px; min-width: 0; }
.kb-tu__slotname input { width: 96px; }
.kb-tu__cnt { display: flex; align-items: center; gap: 4px; }
.kb-tu__cnt b { min-width: 18px; text-align: center; }
.kb-tu__x { width: 32px; height: 32px; border-radius: 50%; border: 0; background: var(--card); color: var(--muted); font-size: 18px; cursor: pointer; }
.kb-tu__pick { display: grid; gap: 6px; margin-top: 8px; }
.kb-tu__pick input { width: 100%; }
.kb-tu__opt { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto auto; gap: 6px; align-items: center; padding: 6px; background: var(--bg2); border-radius: 10px; font-size: 13px; }
.kb-tu__opt b { display: block; overflow-wrap: anywhere; font-size: 13px; }
.kb-tu__opt small { color: var(--muted); font-size: 11px; }
.kb-tu__opt .kb-chip, .kb-tu__tools .kb-chip { border: 0; cursor: pointer; color: var(--text); min-height: 32px; padding: 0 10px; }
.kb-tu__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 8px 0; font-size: 13px; color: var(--muted); }
.kb-tu__tools label { display: flex; align-items: center; gap: 6px; }
.kb-tu__tools input { width: 88px; }
.kb-tu__sum { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 12px; }
.kb-tu__sum > div { display: flex; flex-direction: column; gap: 2px; background: var(--bg2); border-radius: 12px; padding: 10px; }
.kb-tu__sum small { color: var(--muted); font-size: 12px; }
.kb-tu__sum b { font-size: 18px; }
.kb-tu__warn { grid-column: 1 / -1; margin: 0; color: var(--acc); font-size: 13px; }
.kb-tu__outs { display: grid; gap: 6px; }
.kb-tu__out { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 6px 8px; background: var(--bg2); border-radius: 12px; text-decoration: none; color: var(--text); border-left: 3px solid transparent; }
.kb-tu__out.is-up { border-left-color: #3ddc84; }
.kb-tu__out b { font-size: 13px; overflow-wrap: anywhere; }
.kb-tu__out span { display: flex; flex-direction: column; min-width: 0; }
.kb-tu__out small { color: var(--muted); font-size: 11px; }
.kb-tu__outp { text-align: right; white-space: nowrap; }
.kb-tu-pools { padding: 4px 12px; }
.kb-tu-pools__row { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.kb-tu-pools__row:last-child { border-bottom: 0; }
.kb-tu-pools__row small { color: var(--muted); font-size: 12px; }
.kb-tu-colls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 700px) { .kb-tu__sum { grid-template-columns: repeat(4, minmax(0, 1fr)); } .kb-tu__warn { grid-column: 1 / -1; } .kb-tu-colls { grid-template-columns: repeat(4, minmax(0, 1fr)); } .kb-tu__outs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Навигация: строка «Сейчас», инструменты группами */
.kb-now { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.kb-nowchip { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--card); border-radius: 14px; text-decoration: none; color: var(--text); min-width: 0; }
.kb-nowchip:hover { background: var(--card2); }
.kb-nowchip .kb-i { color: var(--acc); flex: none; }
.kb-nowchip > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.kb-nowchip small { color: var(--muted); font-size: 11px; }
.kb-nowchip b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kb-toolgroup + .kb-toolgroup { margin-top: 14px; }
.kb-toolgroup__h { font-size: 14px; color: var(--muted); font-weight: 600; margin: 0 0 8px; }
.kb-toolsgrid .kb-toolcard { text-decoration: none; color: var(--text); }
.kb-toolsgrid .kb-toolcard small, .kb-front-tools .kb-toolcard small { display: block; }
.kb-skgrid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kb-gamechips { display: grid; gap: 6px; }
.kb-gamechips__label { font-size: 12px; color: var(--muted); margin: 6px 0 0; }
.kb-sitesecs ul { columns: 2; }
@media (min-width: 700px) { .kb-now { grid-template-columns: repeat(4, minmax(0, 1fr)); } .kb-skgrid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .kb-sitesecs ul { columns: 3; } }

/* Тир-лист Dota 2 */
.kb-dt { padding: 2px 10px; margin-top: 10px; }
.kb-dt__head, .kb-dt__row { display: grid; grid-template-columns: 34px minmax(0, 1fr) 70px 46px; gap: 10px; align-items: center; }
.kb-dt__head { font-size: 11px; color: var(--muted); padding: 8px 0 4px; }
.kb-dt__head span:nth-child(n+3), .kb-dt__wr, .kb-dt__pr { text-align: right; }
.kb-dt__row { padding: 7px 0; border-top: 1px solid var(--line); text-decoration: none; color: var(--text); }
.kb-dt__row[hidden] { display: none; }
.kb-dt__hero { display: flex; align-items: center; gap: 8px; min-width: 0; }
.kb-dt__hero img { width: 48px; height: 27px; object-fit: cover; border-radius: 4px; flex: none; }
.kb-dt__hero > span { display: flex; flex-direction: column; min-width: 0; }
.kb-dt__hero b { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-dt__hero small { font-size: 11px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-dt__wr { display: flex; flex-direction: column; font-size: 14px; }
.kb-dt__wr small { font-size: 11px; }
.kb-dt__pr { font-size: 13px; color: var(--muted); }
.kb-dt-filter .kb-chip { border: 0; cursor: pointer; color: var(--text); }
.kb-dt-moves { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kb-dt-moves .kb-box { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.kb-dt-moves a { color: var(--text); text-decoration: none; display: flex; justify-content: space-between; gap: 6px; }

/* FACEIT */
.kb-fclvl { display: inline-grid; place-items: center; flex: none; border-radius: 50%; border: 3px solid var(--fc); color: var(--fc); font-weight: 800; font-size: 13px; background: #1a1a1a; }
.kb-fc__head { display: flex; align-items: center; gap: 12px; }
.kb-fc__head .kb-fclvl { font-size: 18px; }
.kb-fc__head b { font-size: 22px; display: block; }
.kb-fc__head small { color: var(--muted); font-size: 12px; }
.kb-fc__tiles { margin-top: 10px; }
.kb-fc__recent { display: flex; align-items: center; gap: 4px; margin-top: 10px; }
.kb-fc__recent small { color: var(--muted); font-size: 12px; margin-right: 6px; }
.kb-fc__recent span { width: 24px; height: 24px; display: inline-grid; place-items: center; border-radius: 6px; font-size: 12px; font-weight: 700; }
.kb-fc__recent .is-w { background: color-mix(in srgb, #3ddc84 25%, transparent); color: #3ddc84; }
.kb-fc__recent .is-l { background: color-mix(in srgb, #ff5a5a 25%, transparent); color: #ff5a5a; }
.kb-fc__maps { margin-top: 10px; }
.kb-fc__mrow { display: grid; grid-template-columns: minmax(0, 1fr) 64px 64px 48px; gap: 8px; padding: 6px 0; border-top: 1px solid var(--line); font-size: 13px; }
.kb-fc__mrow span:not(:first-child) { text-align: right; }
.kb-fc__mhead { color: var(--muted); font-size: 11px; border-top: 0; }
.kb-fcl { padding: 2px 12px; }
.kb-fcl__row { display: grid; grid-template-columns: auto 28px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line); text-decoration: none; color: var(--text); }
.kb-fcl__row:first-child { border-top: 0; }
div.kb-fcl__row { grid-template-columns: 28px minmax(0, 1fr) auto; }
.kb-fcl__n { color: var(--muted); font-size: 12px; min-width: 18px; text-align: right; }
.kb-fcl__name { display: flex; flex-direction: column; min-width: 0; }
.kb-fcl__name b { font-size: 14px; display: flex; align-items: center; gap: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-fcl__name small { color: var(--muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-fcl__elo { font-size: 15px; white-space: nowrap; }

/* Даты выхода игр */
.kb-rggrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kb-rgcard { display: flex; flex-direction: column; gap: 2px; min-width: 0; text-decoration: none; color: var(--text); }
.kb-rgcard__img { display: block; aspect-ratio: 3 / 4; border-radius: 10px; overflow: hidden; background: var(--card); margin-bottom: 4px; }
.kb-rgcard__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kb-rgcard b { font-size: 13px; line-height: 1.25; overflow-wrap: anywhere; }
.kb-rgcard small { font-size: 11px; color: var(--muted); }
.kb-rgcard__pl { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kb-rglist { padding: 2px 12px; }
.kb-rglist__row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 2px 10px; padding: 8px 0; border-top: 1px solid var(--line); text-decoration: none; color: var(--text); }
.kb-rglist__row:first-child { border-top: 0; }
.kb-rglist__date { grid-row: span 2; color: var(--acc); font-size: 12px; font-weight: 600; }
.kb-rglist__row b { font-size: 14px; overflow-wrap: anywhere; }
.kb-rglist__row small { color: var(--muted); font-size: 11px; }
.kb-rg-head { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 14px; align-items: start; margin-top: 8px; }
.kb-rg-head__cover { width: 110px; height: auto; border-radius: 12px; }
.kb-rg-date { display: flex; flex-direction: column; gap: 2px; margin: 10px 0; }
.kb-rg-date small { color: var(--muted); font-size: 12px; }
.kb-rg-date b { font-size: 22px; color: var(--acc); }
.kb-rg-cd { font-size: 13px; font-weight: 600; }
.kb-rg-req { display: grid; gap: 8px; }
.kb-rg-req dd { overflow-wrap: anywhere; }
.kb-rg-shots { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.kb-rg-shots img { width: 100%; height: auto; border-radius: 8px; display: block; }
.kb-rg-log { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.kb-rg-log small { color: var(--muted); margin-right: 6px; }
@media (min-width: 700px) {
  .kb-rggrid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .kb-rg-head { grid-template-columns: 200px minmax(0, 1fr); }
  .kb-rg-head__cover { width: 200px; }
  .kb-rg-req { grid-template-columns: 1fr 1fr; }
}

/* ---------- Главная: блоки ---------- */
.kb-front-games { margin-top: 16px; }
.kb-game__on { display: inline-flex; align-items: center; gap: 4px; }
.kb-game__on .kb-live-dot { width: 6px; height: 6px; box-shadow: none; }
.kb-gbadge { flex: none; display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; font: 700 10px/1 var(--f-head, inherit); letter-spacing: -.02em;
  color: var(--gc); background: color-mix(in srgb, var(--gc) 16%, var(--card2, #1a1d23)); border: 1px solid color-mix(in srgb, var(--gc) 45%, transparent); }
.kb-fgrid { display: grid; gap: 0 24px; }
.kb-fblock .kb-box { padding: 2px 12px; }
.kb-skgrid--front { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.kb-skgrid--front > :nth-child(n+5) { display: none; }

.kb-onl__row { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 0 14px; border-top: 1px solid var(--line); color: var(--text); text-decoration: none; }
.kb-onl__row:first-child { border-top: 0; }
.kb-onl__name { display: flex; flex-direction: column; min-width: 0; }
.kb-onl__name b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kb-onl__name small { color: var(--muted); font-size: 11px; }
.kb-onl__n { font-size: 16px; white-space: nowrap; }
.kb-onl__bar { position: absolute; left: 44px; right: 0; bottom: 6px; height: 3px; border-radius: 3px; background: var(--line); }
.kb-onl__bar::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w); border-radius: 3px; background: var(--gc); }
.kb-onl__row:hover b { color: var(--acc); }

.kb-rel__row { display: grid; grid-template-columns: 45px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); color: var(--text); text-decoration: none; }
.kb-rel__row:first-child { border-top: 0; }
.kb-rel__img { width: 45px; height: 64px; border-radius: 6px; overflow: hidden; background: var(--card2, #1a1d23); }
.kb-rel__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kb-rel__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.kb-rel__body b { font-size: 14px; line-height: 1.25; overflow-wrap: anywhere; }
.kb-rel__body small { color: var(--muted); font-size: 12px; }
.kb-rel__date { color: var(--acc); font-weight: 600; }
.kb-rel__row:hover b, .kb-ffree__row:hover b, .kb-fpatch__row:hover b { color: var(--acc); }
.kb-pills { display: flex; flex-wrap: wrap; gap: 4px; }
.kb-pill { font-size: 10px; line-height: 1; padding: 4px 6px; border-radius: 6px; background: var(--card2, #1a1d23); color: var(--soft, #c9ccd3); border: 1px solid var(--line); }
.kb-pill--ru { color: #7fc8ff; border-color: color-mix(in srgb, #7fc8ff 40%, transparent); }
.kb-pill--free { color: var(--win); border-color: color-mix(in srgb, var(--win) 40%, transparent); }
.kb-chip--more { color: var(--acc); }

.kb-ffree__row { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); color: var(--text); text-decoration: none; }
.kb-ffree__row:first-child { border-top: 0; }
.kb-ffree__img { width: 104px; aspect-ratio: 460 / 215; border-radius: 6px; overflow: hidden; background: var(--card2, #1a1d23); }
.kb-ffree__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kb-ffree__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.kb-ffree__body b { font-size: 14px; line-height: 1.25; }
.kb-ffree__body small { color: var(--muted); font-size: 12px; }

.kb-fpatch__row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); color: var(--text); text-decoration: none; }
.kb-fpatch__row:first-child { border-top: 0; }
.kb-fpatch__row > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.kb-fpatch__row b { font-size: 13px; line-height: 1.3; overflow-wrap: anywhere; }
.kb-fpatch__row small { color: var(--muted); font-size: 11px; }

@media (min-width: 700px) {
  .kb-skgrid--front { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .kb-skgrid--front > :nth-child(n+5) { display: flex; }
  .kb-fgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .kb-skgrid--front { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
  .kb-fgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Нож: из чего скрафтить */
.kb-kcraft__lead { font-size: 14px; margin: 0 0 10px; }
.kb-kcraft__coll { margin-bottom: 8px; padding: 0 12px; }
.kb-kcraft__coll summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; cursor: pointer; }
.kb-kcraft__coll summary::-webkit-details-marker { display: none; }
.kb-kcraft__coll summary > span:first-child { display: flex; flex-direction: column; min-width: 0; }
.kb-kcraft__coll summary small { color: var(--muted); font-size: 12px; }
.kb-kcraft__chance { display: flex; flex-direction: column; align-items: flex-end; flex: none; }
.kb-kcraft__chance b { color: var(--acc); font-size: 17px; }
.kb-kcraft__chance small { color: var(--muted); font-size: 11px; }
.kb-kcraft__inputs { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; padding-bottom: 4px; }
.kb-kcraft__in { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 8px; align-items: center; padding: 6px; border-radius: 10px; background: var(--card2, #1a1d23); color: var(--text); text-decoration: none; }
.kb-kcraft__in:hover b { color: var(--acc); }
.kb-kcraft__img { width: 56px; height: 42px; display: grid; place-items: center; }
.kb-kcraft__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.kb-kcraft__in > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.kb-kcraft__in b { font-size: 12px; line-height: 1.25; overflow-wrap: anywhere; }
.kb-kcraft__in small { color: var(--muted); font-size: 11px; }
.kb-kcraft__coll .kb-note { margin: 8px 0 12px; }
