/* ===== LEADERS (всё под .lb-page, чтобы не конфликтовать с Bootstrap/другими страницами) ===== */
    .lb-page { padding: 24px 30px 48px; }
    .lb-page .lb-sec { margin-top: 0; }
    .lb-page .lb-sec + .lb-sec { margin-top: 30px; }
    .lb-page .sechead { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
    .lb-page .sechead .lhs { display:flex; align-items:center; gap:10px; }
    /* h1 — заголовок страницы, h2 — заголовки секций ниже; выглядят одинаково */
    .lb-page .sechead :is(h1,h2) { font:700 20px "Inter",sans-serif; letter-spacing:-.015em; margin:0; }
    .lb-page .kick { font:400 9.5px "JetBrains Mono",monospace; letter-spacing:.14em; color:var(--accent);
        background:var(--me-bg); border:1px solid var(--me-border); border-radius:var(--r-pill); padding:3px 9px; white-space:nowrap; }

    /* segmented controls */
    .lb-page .seg { display:inline-flex; padding:3px; background:var(--card-hi); border:1px solid var(--border); border-radius:var(--r-pill); }
    .lb-page .seg button { font:500 10.5px "JetBrains Mono",monospace; letter-spacing:.06em; padding:6px 13px;
        background:transparent; border:none; color:var(--text-3); border-radius:var(--r-pill); cursor:pointer; transition:.15s; white-space:nowrap; }
    .lb-page .seg button:hover { color:var(--text); }
    .lb-page .seg button.on { background:var(--bg); color:var(--text); }
    .lb-page .seg.seg-white { background:#fff; border-color:transparent; }
    .lb-page .seg.seg-white button.on { background:var(--text); color:var(--bg); }
    .lb-page .seg.years-type button { text-transform:uppercase; }

    /* region select */
    .lb-page .group-select {
        box-sizing:border-box; height:34px; display:inline-flex; align-items:center;
        font:500 10.5px "JetBrains Mono",monospace; letter-spacing:.06em; color:var(--text-2);
        background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="%238d8d99" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="m4 6 4 4 4-4"/></svg>') no-repeat right 11px center;
        background-size:11px; border:1px solid var(--border); border-radius:var(--r-pill);
        padding:0 32px 0 14px; appearance:none; -webkit-appearance:none; cursor:pointer; transition:border-color .15s;
    }
    .lb-page .group-select:hover { border-color:var(--border-hi); }
    .lb-page .group-select:focus { outline:none; border-color:var(--accent); }

    .lb-page .lb-controls { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:22px; }
    .lb-page .lb-controls .lhs, .lb-page .lb-controls .rhs { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

    /* cards & grid */
    .lb-page .lb-card { background:var(--card); border:1px solid var(--border); border-radius:var(--r-lg); padding:20px 22px; }
    .lb-page .lb-card .head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
    .lb-page .lb-card .lb-title { font:700 15px "Inter",sans-serif; margin:0; letter-spacing:-.005em; color:var(--text); }
    .lb-page .grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
    .lb-page .lb-empty { padding:26px 8px; text-align:center; font:400 13px "Inter",sans-serif; color:var(--text-3); }

    /* avatars + medals */
    .lb-page .hunter-av { border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
        color:#fff; font:800 1em "Inter",sans-serif; letter-spacing:-.01em; position:relative; overflow:hidden; }
    .lb-page .hunter-av img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
    .lb-page .hunter-av.a1 { background:linear-gradient(135deg,#4a7bc8,#2a4b88); }
    .lb-page .hunter-av.a2 { background:linear-gradient(135deg,#c84a8b,#882a5b); }
    .lb-page .hunter-av.a3 { background:linear-gradient(135deg,#6bc84a,#2a882a); }
    .lb-page .hunter-av.a4 { background:linear-gradient(135deg,#c8954a,#884b1a); }
    .lb-page .hunter-av.a5 { background:linear-gradient(135deg,#8b4ac8,#5b2a88); }
    .lb-page .hunter-av.a6 { background:linear-gradient(135deg,#4ac8b5,#2a8888); }
    .lb-page .hunter-av.a7 { background:linear-gradient(135deg,#c85a4a,#88301a); }
    .lb-page .hunter-av.a8 { background:linear-gradient(135deg,#5a6ec8,#2a3888); }
    .lb-page .medal { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
        font:800 1em "JetBrains Mono",monospace; letter-spacing:-.01em; border-radius:50%;
        box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 4px 10px -4px rgba(0,0,0,.5); }
    .lb-page .medal.gold { background:linear-gradient(135deg,#ffe08a,var(--gold)); color:#3a2607; }
    .lb-page .medal.silver { background:linear-gradient(135deg,#eef0f3,var(--silver)); color:#33363c; }
    .lb-page .medal.bronze { background:linear-gradient(135deg,#e5b184,var(--bronze)); color:#3a1f08; }

    /* podium */
    .lb-page .podium-host {
        background:
            radial-gradient(ellipse 760px 320px at 50% -12%, var(--me-bg), transparent),
            linear-gradient(180deg, var(--card-hi), var(--card));
        border:1px solid var(--border-hi); border-radius:var(--r-xl);
        padding:34px 30px 30px; margin-bottom:24px; position:relative; overflow:hidden;
    }
    .lb-page .podium-host::before { content:""; position:absolute; inset:0; pointer-events:none;
        background:radial-gradient(120% 150% at 50% -20%, rgba(255,255,255,.05), transparent 55%); }
    .lb-page .style-podium { display:grid; grid-template-columns:1fr 1.3fr 1fr; align-items:end; gap:18px; max-width:920px; margin:0 auto; }
    .lb-page .pod { position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; cursor:pointer; }
    .lb-page .pod.pod-empty { opacity:.4; cursor:default; }
    .lb-page .pod .crown { font-size:22px; line-height:1; color:var(--gold); margin-bottom:6px; filter:drop-shadow(0 2px 6px rgba(255,199,74,.5)); }
    .lb-page .pod .pod-av-wrap { position:relative; }
    .lb-page .pod .hunter-av { width:74px; height:74px; font-size:26px; border:3px solid var(--bg); box-shadow:0 0 0 2px var(--border-hi); }
    .lb-page .pod-1 .hunter-av { width:104px; height:104px; font-size:38px; box-shadow:0 0 0 3px var(--gold), 0 0 34px -6px rgba(255,199,74,.7); }
    .lb-page .pod .rank-medal { position:absolute; bottom:-6px; left:50%; transform:translateX(-50%); width:26px; height:26px; font-size:12px; border:2px solid var(--bg); }
    .lb-page .pod-1 .rank-medal { width:30px; height:30px; font-size:14px; }
    .lb-page .pod .flag { font-size:15px; margin-top:12px; line-height:1; }
    .lb-page .pod .pod-name { font:700 14.5px "Inter",sans-serif; letter-spacing:-.01em; margin-top:5px; line-height:1.15; }
    .lb-page .pod-1 .pod-name { font-size:17px; }
    .lb-page .pod .pod-lvl { font:400 9.5px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.08em; margin-top:4px; }
    .lb-page .pod .pod-val { font:800 1em "Inter",sans-serif; letter-spacing:-.02em; margin-top:10px; line-height:1; }
    .lb-page .pod .pod-val b { font-size:26px; color:var(--text); font-variant-numeric:tabular-nums; }
    .lb-page .pod-1 .pod-val b { font-size:36px; color:var(--accent); }
    .lb-page .pod .pod-val small { display:block; font:500 8.5px "JetBrains Mono",monospace; letter-spacing:.14em; color:var(--text-3); margin-top:5px; }
    .lb-page .pod .plinth { width:100%; margin-top:16px; border-radius:8px 8px 0 0; border:1px solid var(--border-hi); border-bottom:none;
        background:linear-gradient(180deg, var(--card-hi), var(--card)); position:relative; display:flex; align-items:flex-start; justify-content:center; padding-top:12px; }
    .lb-page .pod-1 .plinth { height:118px; background:linear-gradient(180deg, rgba(255,199,74,.22), var(--card)); }
    .lb-page .pod-2 .plinth { height:84px; }
    .lb-page .pod-3 .plinth { height:60px; }
    .lb-page .pod .plinth .pl-rank { font:700 30px "Space Grotesk",sans-serif; color:var(--text-4); letter-spacing:.02em; }
    .lb-page .pod-1 .plinth .pl-rank { font-size:40px; color:var(--gold); }

    /* ranked table */
    .lb-page .lb-table { padding:8px 10px; }
    .lb-page .lb-thead { display:grid; grid-template-columns:52px 1fr 150px 210px; gap:14px; align-items:center;
        padding:10px 14px 12px; border-bottom:1px solid var(--border); }
    .lb-page .lb-thead span { font:400 9px "JetBrains Mono",monospace; letter-spacing:.12em; color:var(--text-4); }
    .lb-page .lb-thead .th-val { text-align:right; }
    .lb-page .lb-row { display:grid; grid-template-columns:52px 1fr 150px 210px; gap:14px; align-items:center;
        padding:12px 14px; border-radius:var(--r-md); transition:background .12s; cursor:pointer; }
    .lb-page .lb-row:hover { background:var(--card-hi); }
    .lb-page .lb-row + .lb-row { margin-top:2px; }
    .lb-page .lb-row .rk { font:600 15px "JetBrains Mono",monospace; color:var(--text-3); text-align:center; font-variant-numeric:tabular-nums; }
    .lb-page .lb-row .hunter { display:flex; align-items:center; gap:12px; min-width:0; }
    .lb-page .lb-row .hunter .hunter-av { width:38px; height:38px; font-size:14px; }
    .lb-page .lb-row .hunter .h-nm { font:600 14.5px "Inter",sans-serif; letter-spacing:-.005em; display:flex; align-items:center; gap:7px; }
    .lb-page .lb-row .hunter .h-nm .flag { font-size:13px; }
    .lb-page .lb-row .hunter .h-lvl { font:400 9px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.08em; margin-top:3px; }
    .lb-page .lb-row .bigval { text-align:right; }
    .lb-page .lb-row .bigval b { font:800 20px "Inter",sans-serif; letter-spacing:-.02em; color:var(--accent); font-variant-numeric:tabular-nums; }
    .lb-page .lb-row .bigval small { display:block; font:400 8px "JetBrains Mono",monospace; letter-spacing:.1em; color:var(--text-4); margin-top:3px; }

    /* «ЭТО ТЫ» — чип остался только в доке «твоя позиция»: он вне таблицы, и там подпись
       единственное, что объясняет карточку. В таблице и на пьедестале своё место видно по выделению. */
    .lb-page .tagme { font:700 8px "JetBrains Mono",monospace; letter-spacing:.1em; color:var(--accent);
        background:var(--me-bg); border:1px solid var(--me-border); border-radius:4px; padding:2px 6px; white-space:nowrap; }

    /* выделение своей строки прямо в таблице (когда игрок и так виден) */
    .lb-page .lb-row.lb-row-me,
    .lb-page .lb-row.lb-row-me:hover { background:var(--me-bg); box-shadow:inset 0 0 0 1px var(--me-border); }
    .lb-page .lb-row.lb-row-me .rk { color:var(--accent); }

    /* выделение себя на пьедестале */
    .lb-page .pod.pod-me .hunter-av { outline:2px solid var(--accent); outline-offset:2px; }
    .lb-page .pod.pod-me .pod-name { color:var(--accent); }

    /* trophy cluster (shared: table + you) */
    .lb-page .cluster { display:flex; gap:9px; font:400 10.5px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.02em; justify-content:flex-end; }
    .lb-page .cluster span { display:inline-flex; align-items:center; gap:5px; }
    .lb-page .cluster b { color:var(--text-2); font-weight:600; }
    .lb-page .cluster .d { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
    .lb-page .cluster .d.platinum { background:var(--platinum-ink); }
    .lb-page .cluster .d.gold { background:var(--gold); }
    .lb-page .cluster .d.silver { background:var(--silver-ink); }
    .lb-page .cluster .d.bronze { background:var(--bronze); }

    /* пагинация таблицы: страница = окно из 20 мест (1–20, 21–40, 41–60 …).
       Пьедестал с топ-3 остаётся над таблицей на любой странице, поэтому первая
       страница начинается с 4-го места. */
    .lb-page .lb-pager { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:16px; flex-wrap:wrap; }
    .lb-page .lb-pager .pg { font:500 10.5px "JetBrains Mono",monospace; letter-spacing:.06em; padding:6px 13px;
        background:var(--card-hi); border:1px solid var(--border); color:var(--text-3);
        border-radius:var(--r-pill); cursor:pointer; transition:.15s; white-space:nowrap; }
    .lb-page .lb-pager .pg:hover:not(:disabled) { color:var(--text); border-color:var(--border-hi); }
    .lb-page .lb-pager .pg.on { background:var(--text); color:var(--bg); border-color:transparent; }
    .lb-page .lb-pager .pg:disabled { opacity:.35; cursor:default; }

    /* your position dock */
    .lb-page .you-dock { position:sticky; bottom:14px; z-index:5; margin-top:16px; }
    .lb-page .you-card { display:grid; grid-template-columns:52px 1fr 150px 210px; gap:14px; align-items:center;
        padding:14px 24px; border-radius:var(--r-md); background:var(--card);
        border:1px solid var(--me-border); box-shadow:0 0 0 3px var(--me-bg), 0 16px 34px -18px rgba(0,0,0,.55); }
    .lb-page .you-card .rk { font:700 15px "JetBrains Mono",monospace; color:var(--accent); text-align:center; }
    .lb-page .you-card .hunter { display:flex; align-items:center; gap:12px; min-width:0; }
    .lb-page .you-card .hunter-av { width:38px; height:38px; font-size:14px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); }
    .lb-page .you-card .h-nm { font:700 14.5px "Inter",sans-serif; display:flex; align-items:center; gap:7px; }
    .lb-page .you-card .h-nm .tagme { font:700 8px "JetBrains Mono",monospace; letter-spacing:.1em; color:var(--accent);
        background:var(--me-bg); border:1px solid var(--me-border); border-radius:4px; padding:2px 6px; }
    .lb-page .you-card .h-lvl { font:400 9px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.08em; margin-top:3px; }
    .lb-page .you-card .bigval { text-align:right; }
    .lb-page .you-card .bigval b { font:800 20px "Inter",sans-serif; letter-spacing:-.02em; color:var(--accent); }
    .lb-page .you-card .bigval small { display:block; font:400 8px "JetBrains Mono",monospace; letter-spacing:.1em; color:var(--text-4); margin-top:3px; }

    /* secondary: две ленты под таблицей — последние платины и последние трофеи */
    .lb-page .feed { display:flex; flex-direction:column; }
    /* .lr, а не .row — иначе margin:0 -12px от бутстрапа уводил аватарки левее заголовка карточки.
       Отрицательный margin здесь свой, ровно на padding строки: содержимое остаётся на линии
       заголовка, а подсветка при наведении выходит за текст. */
    .lb-page .feed .lr { display:grid; grid-template-columns:36px 1fr auto; gap:12px; align-items:center;
        margin:0 -8px; padding:11px 8px; border-radius:var(--r-sm);
        border-bottom:1px solid var(--border); cursor:pointer; }
    .lb-page .feed .lr:hover { background:var(--card-hi); }
    .lb-page .feed .lr:last-child { border-bottom:none; }
    /* аватар игрока, заработавшего платину (вместо CSS-кружка); фолбэк — инициалы через .hunter-av.aN */
    .lb-page .feed .hunter-av { width:36px; height:36px; font-size:13px; }
    .lb-page .feed .who { font:600 13.5px "Inter",sans-serif; display:flex; align-items:center; gap:6px; }
    .lb-page .feed .who .flag { font-size:12px; }
    /* вторая строка: в ленте платин это ссылка на игру, в ленте трофеев — контейнер
       «точка типа · название трофея · ссылка на игру». Оформление общее. */
    .lb-page .feed .what { display:flex; align-items:center; gap:5px; font:400 9px "JetBrains Mono",monospace;
        color:var(--text-3); letter-spacing:.05em; text-transform:uppercase; margin-top:5px;
        text-decoration:none; transition:color .15s; min-width:0; }
    .lb-page .feed a.what:hover { color:var(--accent); }
    /* название игры внутри ленты трофеев — кликается только оно, не вся строка */
    .lb-page .feed .what-game { color:inherit; text-decoration:none; transition:color .15s;
        overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .lb-page .feed .what-game:hover { color:var(--accent); }
    /* точка типа трофея — иначе бронза от платины в ленте неотличима */
    .lb-page .feed .what .td { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
    .lb-page .feed .what .td.platinum { background:var(--platinum-ink); }
    .lb-page .feed .what .td.gold     { background:var(--gold); }
    .lb-page .feed .what .td.silver   { background:var(--silver-ink); }
    .lb-page .feed .what .td.bronze   { background:var(--bronze); }
    .lb-page .feed .right { text-align:right; white-space:nowrap; }
    .lb-page .feed .when { font:400 9.5px "JetBrains Mono",monospace; color:var(--text-4); letter-spacing:.06em; }
    .lb-page .feed .rare { font:700 12px "JetBrains Mono",monospace; color:var(--accent); margin-top:3px; }

    @media (max-width:1000px){
        .lb-page .lb-thead, .lb-page .lb-row, .lb-page .you-card { grid-template-columns:44px 1fr 128px; }
        .lb-page .lb-thead .th-cluster, .lb-page .lb-row .cluster, .lb-page .you-card .cluster { display:none; }
    }
    @media (max-width:820px){
        .lb-page { padding:20px 16px 40px; }
    }
    @media (max-width:640px){
        .lb-page .grid-2 { grid-template-columns:1fr; }
        /* на узком экране обе ленты складываются в столбик — 10+10 строк было бы слишком длинно.
           Разделитель снимаем с пятой строки: :last-child указывает на скрытую десятую. */
        .lb-page .feed .lr:nth-child(n+6) { display:none; }
        .lb-page .feed .lr:nth-child(5) { border-bottom:none; }
        .lb-page .style-podium { grid-template-columns:1fr 1fr 1fr; gap:8px; }
        .lb-page .pod-1 .hunter-av { width:76px; height:76px; font-size:28px; }
        .lb-page .lb-thead, .lb-page .lb-row, .lb-page .you-card { grid-template-columns:36px 1fr 108px; }
        .lb-page .podium-host { padding:24px 16px 20px; }

        /* (1) чипы сортировки/фильтрации над таблицей — на всю ширину;
               сегменты делят строку поровну (flex:1 1 0) */
        .lb-page .lb-controls { flex-direction:column; align-items:stretch; gap:10px; }
        .lb-page .lb-controls .lhs, .lb-page .lb-controls .rhs { width:100%; flex-direction:column; align-items:stretch; gap:10px; }
        .lb-page .lb-controls .seg { display:flex; width:100%; }
        .lb-page .lb-controls .seg button { flex:1 1 0; min-width:0; text-align:center; }
        .lb-page .lb-controls .group-select { width:100%; }

        /* (2) карточка «Лучшие за неделю» — переключатель падает под заголовок на всю ширину */
        .lb-page .lb-card .head { flex-direction:column; align-items:stretch; gap:12px; }
        .lb-page .seg.years-type { display:flex; width:100%; }
        .lb-page .seg.years-type button { flex:1 1 0; min-width:0; text-align:center; padding:6px 4px; font-size:9px; letter-spacing:.02em; }

        /* (3) фиды — колонки грида сжимаются, длинный текст переносится (без гор. вылета) */
        .lb-page .feed .lr, .lb-page .feed .lr > div { min-width:0; }
        .lb-page .feed .what { word-break:break-word; }
    }
