/* ===== GAMES CATALOG (всё под .gm-page, чтобы не конфликтовать с Bootstrap/другими страницами) ===== */
    .gm-page { padding: 24px 30px 48px; }
    .gm-page .sechead { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
    .gm-page .sechead .lhs { display:flex; align-items:center; gap:10px; }
    /* h1 — заголовок страницы, h2 — заголовки секций ниже; выглядят одинаково */
    .gm-page .sechead :is(h1,h2) { font:700 20px "Inter",sans-serif; letter-spacing:-.015em; margin:0; }
    .gm-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; }

    /* stat tiles */
    .gm-page .stat-tiles { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px; }
    .gm-page .stat-tile { background:var(--card); border:1px solid var(--border); border-radius:var(--r-md); padding:18px 20px; }
    .gm-page .stat-tile b { display:block; font:800 26px "Inter",sans-serif; letter-spacing:-.02em; line-height:1; font-variant-numeric:tabular-nums; }
    .gm-page .stat-tile b.accent { color:var(--accent); }
    .gm-page .stat-tile small { display:block; font:400 9.5px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.1em; margin-top:9px; }

    /* featured spotlight (компактный горизонтальный ряд) */
    .gm-page .featured-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:26px; }
    .gm-page .featured-row:has(> :only-child) { grid-template-columns:1fr; }
    .gm-page .featured {
        display:flex; flex-direction:row; align-items:center; gap:12px; padding:10px 14px;
        text-decoration:none; color:inherit;
        background:
            radial-gradient(ellipse 640px 320px at 90% 10%, var(--me-bg), transparent),
            linear-gradient(135deg, var(--card-hi), var(--card));
        border:1px solid var(--border-hi); border-radius:var(--r-xl); position:relative; overflow:hidden; transition:.15s;
    }
    .gm-page .featured:hover { border-color:var(--accent); }
    .gm-page .featured .fcover { position:relative; width:52px; height:52px; flex:0 0 52px; overflow:hidden; border-radius:var(--r-md); background:var(--card-hi); }
    .gm-page .featured .fcover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
    .gm-page .featured .fcover .cscrim { position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.7)); }
    .gm-page .featured .fcover .rating { position:absolute; bottom:3px; right:3px; z-index:2; display:inline-flex; align-items:center; gap:2px;
        font:700 9px "JetBrains Mono",monospace; color:#fff; background:rgba(10,8,14,.6);
        border:1px solid rgba(255,255,255,.2); border-radius:var(--r-pill); padding:1px 5px; backdrop-filter:blur(4px); }
    .gm-page .featured .fcover .rating .st { color:var(--gold); }
    .gm-page .featured .finfo { min-width:0; flex:1; }
    .gm-page .featured .ftag { display:inline-block; font:400 8px "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:2px 8px; margin-bottom:4px; }
    .gm-page .featured h2.ftitle { font:800 14px "Inter",sans-serif; letter-spacing:-.01em; line-height:1.2; margin:0 0 3px; color:var(--text); }
    .gm-page .featured .fmeta { font:400 9.5px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.03em;
        white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .gm-page .featured .ffeat-stat { flex-shrink:0; text-align:right; }
    .gm-page .featured .ffeat-stat b { display:block; font:800 24px "Inter",sans-serif; letter-spacing:-.02em; line-height:1;
        color:var(--accent); font-variant-numeric:tabular-nums; }
    .gm-page .featured .ffeat-stat small { display:block; font:400 8.5px "JetBrains Mono",monospace; letter-spacing:.1em;
        color:var(--text-3); margin-top:5px; white-space:nowrap; }

    /* segmented controls + selects (тот же паттерн, что на Лидерах) */
    .gm-page .seg { display:inline-flex; padding:3px; background:var(--card-hi); border:1px solid var(--border); border-radius:var(--r-pill); }
    .gm-page .seg button { font:500 10.5px "JetBrains Mono",monospace; letter-spacing:.06em; padding:6px 12px;
        background:transparent; border:none; color:var(--text-3); border-radius:var(--r-pill); cursor:pointer; transition:.15s; white-space:nowrap; }
    .gm-page .seg button:hover { color:var(--text); }
    .gm-page .seg button.on { background:var(--bg); color:var(--text); }
    .gm-page .seg.seg-white { background:#fff; border-color:transparent; }
    .gm-page .seg.seg-white button.on { background:var(--text); color:var(--bg); }
    .gm-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;
    }
    .gm-page .group-select:hover { border-color:var(--border-hi); }
    .gm-page .group-select:focus { outline:none; border-color:var(--accent); }

    /* catalog controls */
    .gm-page .cat-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
    .gm-page .cat-controls .lhs, .gm-page .cat-controls .rhs { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .gm-page .cat-search { display:flex; align-items:center; gap:9px; background:#fff; border:1px solid var(--border);
        border-radius:var(--r-pill); padding:0 14px; height:34px; min-width:220px; transition:.15s; }
    .gm-page .cat-search:focus-within { border-color:var(--accent); }
    .gm-page .cat-search svg { color:var(--text-3); flex-shrink:0; }
    .gm-page .cat-search input { background:none; border:none; outline:none; color:#111; font:400 13px "Inter",sans-serif; width:100%; }
    .gm-page .cat-search input::placeholder { color:#8d8d99; }

    /* game grid */
    .gm-page .game-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
    .gm-page .game-card { background:var(--card); border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden;
        transition:.15s; display:flex; flex-direction:column; text-decoration:none; color:inherit; }
    .gm-page .game-card:hover { border-color:var(--border-hi); transform:translateY(-3px); }
    .gm-page .game-card .gc-cover { position:relative; aspect-ratio:1/1; overflow:hidden; background:var(--card-hi); }
    .gm-page .game-card .gc-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
    .gm-page .game-card .gc-cover .cscrim { position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.72)); }
    .gm-page .game-card .gc-plats { position:absolute; top:9px; left:9px; z-index:2; display:flex; gap:4px; flex-wrap:wrap; }
    .gm-page .plat-chip { font:700 8.5px "JetBrains Mono",monospace; letter-spacing:.06em; color:#fff;
        background:rgba(10,8,14,.55); border:1px solid rgba(255,255,255,.18); border-radius:4px; padding:2px 6px; backdrop-filter:blur(4px); }
    .gm-page .game-card .gc-rating { position:absolute; top:9px; right:9px; z-index:2; display:inline-flex; align-items:center; gap:3px;
        font:700 10px "JetBrains Mono",monospace; color:#fff;
        background:rgba(10,8,14,.55); border:1px solid rgba(255,255,255,.18); border-radius:var(--r-pill); padding:2px 8px; backdrop-filter:blur(4px); }
    .gm-page .game-card .gc-rating .st { color:var(--gold); }
    .gm-page .game-card .gc-rare { position:absolute; left:9px; bottom:9px; z-index:2; display:inline-flex; align-items:center; gap:6px;
        font:400 9.5px "JetBrains Mono",monospace; color:#fff; letter-spacing:.04em;
        background:rgba(10,8,14,.5); border:1px solid rgba(230,230,240,.35); border-radius:var(--r-pill); padding:3px 9px 3px 4px; backdrop-filter:blur(4px); }
    .gm-page .game-card .gc-rare .d { width:8px; height:8px; border-radius:50%; background:var(--platinum); }
    .gm-page .game-card .gc-rare b { color:#fff; font-weight:700; }
    .gm-page .game-card .gc-body { padding:13px 14px 15px; display:flex; flex-direction:column; gap:8px; flex:1; }
    .gm-page .game-card .gc-title { font:700 14.5px "Inter",sans-serif; letter-spacing:-.01em; line-height:1.2; color:var(--text); }
    .gm-page .game-card .gc-sub { font:400 9px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.06em; }
    .gm-page .game-card .gc-tally { display:flex; gap:9px; font:400 10px "JetBrains Mono",monospace; color:var(--text-3); flex-wrap:wrap; }
    .gm-page .game-card .gc-tally span { display:inline-flex; align-items:center; gap:4px; }
    .gm-page .game-card .gc-tally .d { width:9px; height:9px; border-radius:50%; }
    .gm-page .game-card .gc-tally .d.platinum { background:var(--platinum-ink); } .gm-page .game-card .gc-tally .d.gold { background:var(--gold); }
    .gm-page .game-card .gc-tally .d.silver { background:var(--silver-ink); } .gm-page .game-card .gc-tally .d.bronze { background:var(--bronze); }
    .gm-page .game-card .gc-foot { margin-top:auto; padding-top:11px; border-top:1px solid var(--border);
        display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .gm-page .game-card .gc-players { font:400 9.5px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.03em; }
    .gm-page .game-card .gc-players b { color:var(--text-2); font-weight:600; }
    /* счётчик игроков сайта, выбивших платину — на месте бывшего чипа сложности.
       Имя не .gc-plats: тот класс уже занят чипами платформ на обложке. */
    .gm-page .game-card .gc-platcount { font:400 9.5px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.03em; white-space:nowrap; }
    .gm-page .game-card .gc-platcount b { color:var(--platinum-ink); font-weight:600; }

    /* list view — карточка-панель с постраничным выводом, как библиотека игрока */
    .gm-page .game-list-panel { display:none; background:var(--card); border:1px solid var(--border); border-radius:var(--r-lg); padding:6px 22px; }
    .gm-page .game-list-panel.on { display:block; }
    .gm-page .game-list { display:flex; flex-direction:column; }
    .gm-page .game-grid.off { display:none; }
    .gm-page .game-row { display:grid; grid-template-columns:56px 1fr 150px 120px 110px 96px; gap:16px; align-items:center;
        padding:11px 12px; border-bottom:1px solid var(--border); border-radius:var(--r-sm); text-decoration:none; color:inherit; }
    .gm-page .game-row:hover { background:var(--card-hi); }
    .gm-page .game-row:last-child { border-bottom:none; }
    .gm-page .game-row .gr-cover { width:56px; height:56px; border-radius:6px; overflow:hidden; background:var(--card-hi); position:relative; }
    .gm-page .game-row .gr-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
    .gm-page .game-row .gr-title { font:600 14px "Inter",sans-serif; letter-spacing:-.005em; color:var(--text); }
    .gm-page .game-row .gr-sub { font:400 9px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.06em; margin-top:4px; }
    .gm-page .game-row .gr-tally { display:flex; gap:9px; font:400 10px "JetBrains Mono",monospace; color:var(--text-3); }
    .gm-page .game-row .gr-tally span { display:inline-flex; align-items:center; gap:4px; }
    .gm-page .game-row .gr-tally .d { width:8px; height:8px; border-radius:50%; }
    .gm-page .game-row .gr-tally .d.platinum { background:var(--platinum-ink); } .gm-page .game-row .gr-tally .d.gold { background:var(--gold); }
    .gm-page .game-row .gr-tally .d.silver { background:var(--silver-ink); } .gm-page .game-row .gr-tally .d.bronze { background:var(--bronze); }
    .gm-page .game-row .gr-players { font:400 11px "JetBrains Mono",monospace; color:var(--text-3); text-align:right; }
    .gm-page .game-row .gr-players b { color:var(--text-2); font-weight:600; display:block; font-size:12.5px; }
    .gm-page .game-row .gr-plats { font:400 11px "JetBrains Mono",monospace; color:var(--text-3); text-align:right; }
    .gm-page .game-row .gr-plats b { color:var(--platinum-ink); font-weight:600; display:block; font-size:12.5px; }
    .gm-page .game-row .gr-rare { font:700 12.5px "JetBrains Mono",monospace; color:var(--accent); text-align:right; }
    .gm-page .game-row .gr-rare small { display:block; font-size:8px; color:var(--text-4); letter-spacing:.08em; margin-top:3px; font-weight:500; }

    /* подвал списка: диапазон + пагинация */
    .gm-page .gm-foot { display:flex; align-items:center; justify-content:space-between; gap:12px;
        border-top:1px solid var(--border); padding:12px 0 14px; margin-top:2px; }
    .gm-page #grid-foot { margin-top:18px; }   /* плитка не в карточке — нужен отступ от последнего ряда */
    .gm-page .gm-range { font:400 10.5px "JetBrains Mono",monospace; letter-spacing:.08em; color:var(--text-3); }
    .gm-page .gm-pager { display:flex; align-items:center; gap:10px; }
    .gm-page .gm-pages { font:600 11px "JetBrains Mono",monospace; letter-spacing:.06em; color:var(--text-2); min-width:44px; text-align:center; }
    .gm-page .gm-pg { width:32px; height:32px; border-radius:var(--r-pill); cursor:pointer;
        display:inline-flex; align-items:center; justify-content:center;
        background:var(--card-hi); border:1px solid var(--border); color:var(--text-3); transition:.15s; }
    .gm-page .gm-pg:hover:not(:disabled) { background:var(--card); color:var(--text); border-color:var(--accent); }
    .gm-page .gm-pg:disabled { opacity:.35; cursor:default; }

    .gm-page .gm-empty { padding:60px 20px; text-align:center; font:400 12px "JetBrains Mono",monospace; color:var(--text-3); letter-spacing:.06em; }

    /* пока едет новый срез каталога — приглушаем старый, чтобы смена фильтра была заметна */
    .gm-page #cat-results { transition:opacity .12s; }
    .gm-page #cat-results.loading { opacity:.45; pointer-events:none; }

    @media (max-width:1100px){
        .gm-page .game-grid { grid-template-columns:repeat(3,1fr); }
        .gm-page .stat-tiles { grid-template-columns:1fr 1fr; }
        .gm-page .game-row { grid-template-columns:48px 1fr 96px; }
        .gm-page .game-row .gr-tally, .gm-page .game-row .gr-players, .gm-page .game-row .gr-plats { display:none; }
    }
    @media (max-width:820px){
        .gm-page { padding:20px 16px 40px; }
        .gm-page .featured-row { grid-template-columns:1fr; }
    }
    @media (max-width:640px){
        .gm-page .game-grid { grid-template-columns:1fr 1fr; }
        .gm-page .game-row { grid-template-columns:44px 1fr auto; }

        /* фильтры/сортировка каталога — стопкой на всю ширину */
        .gm-page .cat-controls { flex-direction:column; align-items:stretch; }
        .gm-page .cat-controls .lhs, .gm-page .cat-controls .rhs { flex-direction:column; align-items:stretch; width:100%; }
        .gm-page .cat-search, .gm-page .group-select { width:100%; min-width:0; }
        .gm-page .cat-controls .seg.seg-white { display:flex; width:100%; }
        .gm-page .cat-controls .seg.seg-white button { flex:1 1 0; text-align:center; }
    }
