/* Зал славы (Д105, Pages/Shared/_HallBoard.cshtml): первые трое — подиумом, остальные — таблицей. Плитки — те же .lc-t, что
   в карточке заявки (css/bricks.css). Узко (телефон) — подиум в столбик, строка таблицы — «подпись: значение». */
/* Раздел зала — ступень лестницы (бустеры, тренеры): значок, название, сколько людей; «Тренер месяца» — плашкой над ними. */
.hall-month{margin:0 0 18px}
.hall-rung{display:grid;gap:10px}
.hall-rung h2{margin:0;display:flex;align-items:center;gap:10px}
.hall-rung h2 img{width:36px;height:36px;object-fit:contain}
.hall-rung__meta{margin:0;color:var(--text-muted);font-size:14px}
/* под залом: сколько людей есть только в Discord и приглашение привязать его */
.hall-discord{margin:14px 0 0}
.hall-discord a{color:var(--accent)}

.hb{container-type:inline-size;display:grid;gap:10px;width:100%}
.hb [data-hall-kind]{cursor:pointer}

/* подиум */
.hb__pod{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.hb-top{position:relative;display:grid;gap:8px;justify-items:center;align-content:start;min-width:0;padding:16px 14px 12px;text-align:center;
  border:1px solid var(--border-hairline);border-radius:14px;background:rgba(255,255,255,.035);transition:border-color .15s}
.hb-top[data-hall-kind]:hover{border-color:var(--border-strong)}
.hb-top--1{border-color:color-mix(in srgb,#f2c94c 55%,transparent);background:linear-gradient(180deg,rgba(242,201,76,.10),rgba(255,255,255,.02))}
.hb-top--2{border-color:color-mix(in srgb,#c9d3e6 40%,transparent)}
.hb-top--3{border-color:color-mix(in srgb,#d8925a 45%,transparent)}
.hb-top__place{position:absolute;top:10px;left:14px;font-weight:900;font-size:20px;color:var(--text-muted)}
.hb-top--1 .hb-top__place{color:#f2c94c}.hb-top--2 .hb-top__place{color:#c9d3e6}.hb-top--3 .hb-top__place{color:#d8925a}
.hb-top .hb__av{width:64px;height:64px;border-radius:16px}
.hb-top .hb__nick{max-width:100%;font-size:17px}
.hb-top>.hb__tiles,.hb-top>.hb-prog,.hb-top>.hb-last{width:100%;text-align:left}
.hb__tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:4px}
/* четыре плитки (бустеры) — 2×2: в ряд по четыре длинное значение («+1 200 MMR») не помещается */
.hb__tiles:has(>:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}
.hb__tiles .lc-t>span svg,.hb-c svg{flex:none;color:#f2c94c;fill:currentColor}

/* общее: аватар, ник, пометки, прогресс, «сейчас», конец строки */
.hb__av{width:40px;height:40px;border-radius:var(--av-r);object-fit:cover;flex:none;display:block}
.hb__av--i{display:grid;place-items:center;background:#5865f2;color:#fff;font-weight:800}
/* аватар со значком в правом нижнем углу (_HallAvatar): ступень уровня в зале активности */
.hb__avw{position:relative;display:inline-flex;flex:none}
.hb__badge{position:absolute;right:-5px;bottom:-5px;z-index:2;width:20px;height:20px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
.hb-top .hb__badge{right:-6px;bottom:-6px;width:28px;height:28px}
.hb-top .hb__av--i{font-size:24px}
.hb__nick{min-width:0;color:var(--text-heading);font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb__notes{display:block;color:var(--text-muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-top .hb__notes{white-space:normal}
.hb__notes a{color:var(--accent);text-decoration:none}
.hb-prog{display:grid;gap:4px;padding:6px 10px;border:1px solid var(--border-hairline);border-radius:10px;background:rgba(255,255,255,.035)}
.hb-prog small{display:flex;justify-content:space-between;gap:8px;color:var(--text-muted);font-size:11px;font-weight:600}
.hb-prog small b{color:var(--text-body);font-weight:600}
.hb-prog__bar{display:block;height:6px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.hb-prog__bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#b07a1c,#f2c94c)}
.hb-now{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid color-mix(in srgb,#3ecf8e 45%,transparent);border-radius:8px;
  background:rgba(62,207,142,.1);color:#7ee2b4;font-size:12.5px;font-weight:700;text-decoration:none}
.hb-now:hover{background:rgba(62,207,142,.18)}
.hb-last{--say:#5ec8ff;min-width:0;padding:6px 11px 8px;border:1px solid color-mix(in srgb,var(--say) 26%,transparent);border-radius:10px;background:color-mix(in srgb,var(--say) 7%,transparent)}
.hb-last b{display:flex;justify-content:space-between;gap:8px;color:color-mix(in srgb,var(--say) 75%,#fff);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.hb-last b span{color:var(--text-muted);text-transform:none;letter-spacing:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-last p{margin:2px 0 0;color:var(--text-body);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:pre-line;overflow-wrap:anywhere}
.hb-last a{color:var(--text-heading);text-decoration:none}.hb-last a:hover{text-decoration:underline}
.hb-last--none{--say:#7C88A6}.hb-last--none p{color:var(--text-muted)}
.hb-last--form p{display:flex;gap:4px}
.hb-last--form i{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;font-style:normal;font-size:11px;font-weight:800}
.hb-last--form i.is-win{background:rgba(62,207,142,.18);color:#7ee2b4}
.hb-last--form i.is-loss{background:rgba(239,68,68,.16);color:#f59a9a}
.hb-last--form i.is-draw{background:rgba(148,163,184,.16);color:var(--text-muted)}
.is-off{opacity:.55}

/* таблица: те же плитки колонками, в конце — отзыв, факт или форма */
.hb-tab{display:grid;gap:6px}
.hb-r{display:grid;grid-template-columns:30px minmax(170px,1.3fr) repeat(var(--cols,3),minmax(64px,.55fr)) minmax(0,2fr);gap:10px;align-items:center;
  padding:8px 12px;border:1px solid var(--border-hairline);border-radius:10px;background:rgba(255,255,255,.03)}
.hb-r[data-hall-kind]:hover{border-color:var(--border-strong)}
.hb-r--head{padding-block:0;border:0;background:none;color:var(--text-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.hb-r__n{text-align:center;color:var(--text-muted);font-weight:800}
.hb-r__who{display:flex;align-items:center;gap:10px;min-width:0}
.hb-r__name{min-width:0}
.hb-c{display:grid;min-width:0}
.hb-c b{display:flex;align-items:center;gap:4px;color:var(--text-heading);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-c small{color:var(--text-muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-c.is-none b{color:var(--text-muted)}
.hb-r__last .hb-last{padding:0;border:0;background:none}
.hb-r__last .hb-last b{display:none}
.hb-r__last .hb-last p{-webkit-line-clamp:1;color:var(--text-muted)}
.hb-r__last .hb-last--review p::before{content:"«"}.hb-r__last .hb-last--review p::after{content:"»"}
.hb-r__last .hb-last--review p{display:block;white-space:nowrap;text-overflow:ellipsis}

@container (max-width:760px){
  .hb__pod{grid-template-columns:1fr}
  .hb-r--head{display:none}
  /* номер — своя колонка на всю строку, плитки идут рядами по --ncols (больше трёх — по две, HallBoardView.NarrowColumns) */
  .hb-r{grid-template-columns:26px repeat(var(--ncols,var(--cols,3)),minmax(0,1fr));row-gap:6px}
  .hb-r__n{grid-row:span var(--nrows,3);align-self:start}
  .hb-r__who{grid-column:2/-1}
  .hb-c::before{content:attr(data-label);color:var(--text-muted);font-size:10.5px;font-weight:600}
  .hb-r__last{grid-column:2/-1}
}

/* Зал активности (Level/Hall.cshtml): строка «когда выборка» над залом и блок «Твоё место» у вошедшего вне топа — место, уровень,
   полоса до следующего уровня и сколько не хватает до последнего места зала. Узко — место с человеком в строку, остальное под ними. */
.hb-meta{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;justify-content:space-between;margin:0 0 12px;color:var(--text-muted);font-size:13px}
.hb-me{container-type:inline-size;display:grid;grid-template-columns:auto auto minmax(180px,1fr) auto;gap:8px 18px;align-items:center;margin:0 0 16px;padding:12px 16px;
  border:1px solid var(--border-hairline);border-left:3px solid var(--accent);border-radius:var(--radius-xs);background:rgba(255,255,255,.03)}
.hb-me--none{grid-template-columns:auto 1fr}
.hb-me__place{color:var(--text-heading);font:700 26px/1 var(--font-display)}
.hb-me__place small{display:block;margin-bottom:4px;color:var(--text-muted);font:600 11px/1.3 var(--font-body);text-transform:uppercase;letter-spacing:.04em}
.hb-me__who{display:flex;align-items:center;gap:10px;min-width:0}
.hb-me__who>span:last-child{display:grid;min-width:0}
.hb-me__who b{overflow:hidden;color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis}
.hb-me__gap{margin:0;color:var(--text-body);font-size:13.5px}
.hb-me .hb-prog{margin:0}
@media (max-width:640px){ .hb-me{grid-template-columns:auto 1fr} .hb-me .hb-prog,.hb-me__gap{grid-column:1/-1} }

/* Зал турниров: последний турнир игры — одной плашкой над рейтингом (Tournaments/Hall.cshtml). Шапка турнира в строку, под ней
   стороны «Чемпионы» и «Финалисты» рядом; состав — в одну строку (ник обрезается); золото и серебро — цветом подписи и полосы
   слева. Плашка уже 760px — стороны друг под другом (container query по .hc). */
.hc{container-type:inline-size;display:grid;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid color-mix(in srgb,#f2c94c 35%,transparent);border-radius:12px;
  background:linear-gradient(180deg,color-mix(in srgb,#f2c94c 7%,transparent),rgba(255,255,255,.02))}
.hc__head{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;min-width:0}
.hc__game{width:20px;height:20px;border-radius:5px;flex:none}
.hc__title{color:var(--text-heading);font-size:15px}
.hc__meta{color:var(--text-muted);font-size:12.5px}
.hc__prize{color:#f2c94c}
.hc__link{margin-left:auto;color:var(--accent);font-size:12.5px;font-weight:600;text-decoration:none}
.hc__sides{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:8px 14px}
.hc__side{--hc:#f2c94c;display:grid;gap:6px;align-content:start;min-width:0;padding-left:10px;border-left:2px solid color-mix(in srgb,var(--hc) 70%,transparent)}
.hc__side--2{--hc:#c9d3e6}
.hc__lab{display:flex;align-items:baseline;gap:8px;min-width:0;color:var(--hc);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.hc__lab b{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-heading);font-size:14px;text-transform:none;letter-spacing:0}
.hc__ppl{display:flex;gap:4px;min-width:0}
.hc__p{display:flex;align-items:center;gap:6px;flex:1 1 0;min-width:0;padding:3px 8px 3px 3px;border:1px solid var(--border-hairline);border-radius:8px;
  background:rgba(4,7,15,.35);color:var(--text-heading);font-size:12.5px;font-weight:600}
.hc__p>span:last-child{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc__p .fxw{flex:none}
.hc__av{width:24px;height:24px;border-radius:6px;object-fit:cover;flex:none;display:block}
.hc__side--2 .hc__p{color:var(--text-body);font-weight:500}
.hc__names{display:none;color:var(--text-muted);font-size:12px;line-height:1.35}
@container (max-width:760px){ .hc__sides{grid-template-columns:1fr} }
@media (max-width:560px){
  .hc__p{flex:none;padding:0;border:0;background:none}
  .hc__p>span:last-child{display:none}
  .hc__av{width:30px;height:30px;border-radius:8px}
  .hc__names{display:block}
}
