/* Кирпичи платформы (манифест, правило 13) — второй ярус стилей: кит (kit) — основа обоих сайтов, этот файл — общие кирпичи
   платформы, css/pages — страницы и семьи страниц. Его грузят все каркасы платформы (_Layout, _EmbedLayout) и каркас колоды на
   витрине (/app/closed/host): кирпич здесь выглядит одинаково везде — в кабинете, во встроенной рамке, в окне колоды на витрине.
   Что где нужно, сверяет храповик CssClosureTests.
   Здесь: человек — значок Plus у ника (_PersonLine), ачивки (_Achievements), карточка заявки (Д104, _ListingCard; узкая — телефон,
   окно колоды — в один столбец), визитка (_PersonCard); ниже — общие кирпичи кабинета. */
.plus-badge{width:22px;height:22px;margin-left:6px;vertical-align:-5px}
.achievements{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.achievements__item{display:inline-flex;align-items:center;gap:5px;padding:2px 10px 2px 3px;border:1px solid var(--border-hairline);border-radius:var(--radius-pill);background:rgba(255,255,255,.04);color:var(--text-body);font-size:12px;font-weight:600;line-height:1.5;cursor:default}
.achievements__item img{width:18px;height:18px;object-fit:contain;flex:none}
.achievements__item--plus{border-color:rgba(245,184,61,.5)}
.achievements__item--ally{border-color:rgba(253,169,45,.45)}
.achievements__item--nitro{border-color:rgba(244,127,255,.55)}
/* Кормилец Кекса (Д106): значок — пиксельный кот, без размытия. */
.achievements__item--kex{border-color:rgba(245,184,61,.35)}
.achievements__item--kex img{image-rendering:pixelated}
.achievements__item--coach{border-color:rgba(63,185,80,.5)}
/* Визитка (_PersonCard): человек и по строке на игру с анкетой — логотип, название, значок и имя главного ранга. */
.pcard{display:grid;gap:10px;min-width:0}
.pcard .achievements{margin-top:0}
.pcard__games{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.pcard__game{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 10px;border:1px solid var(--border-hairline);border-radius:var(--radius-sm);background:rgba(255,255,255,.03);font-size:14px}
.pcard__logo{flex:none;width:20px;height:20px;object-fit:contain}
.pcard__title{margin-right:auto;color:var(--text-muted)}
.pcard__rank{flex:none;width:26px;height:26px;object-fit:contain}
.pcard__game b{color:var(--text-heading);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc{--lc-c:var(--fi-color,var(--accent));container-type:inline-size;width:100%;min-width:0}
.lc__in>*{min-width:0}
@container (min-width:641px){
  .lc__in{display:grid;grid-template-columns:minmax(300px,36%) minmax(0,1fr);align-items:start}
  .lc__area{align-self:stretch;margin-left:16px;padding-left:16px;border-left:1px solid var(--border-hairline)}
}
@container (max-width:640px){
  .lc__area{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-hairline)}
  .lc__tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lc-t small{font-size:10.5px}
}

/* Человек и достижения: значки идут после всей строки, чтобы не перекрывать статус и дополнительные подписи. */
.lc__who .pl{align-items:flex-start;gap:12px}
.lc__who .pl__av{width:56px;height:56px}
.lc__who .pl__name{font-size:17px;line-height:1.25}
.lc__who .pl small{color:color-mix(in srgb,var(--lc-c) 80%,#fff);font-weight:700}
.lc__who .pl small.pl__seen{color:var(--text-muted);font-weight:400}
.lc__who .pl small.pl__seen.is-online{color:#3fb950}
.lc__who .achievements{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 0 68px}
.lc__who .achievements__item{display:inline-flex;align-items:center;gap:4px;padding:1px 8px 1px 2px;border:1px solid var(--border-hairline);border-radius:var(--radius-pill);
  background:rgba(255,255,255,.04);color:var(--text-body);font-size:11.5px;font-weight:600;line-height:1.5;white-space:nowrap}
.lc__who .achievements__item img{width:16px;height:16px;object-fit:contain}

/* плитки: по три в ряд, одной высоты; подпись сверху, значение обычным шрифтом, пояснение ниже */
.lc__tiles{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:4px;margin-top:12px}
.lc-t{display:grid;align-content:start;min-width:0;padding:5px 8px 6px;border:1px solid var(--border-hairline);border-radius:10px;background:rgba(255,255,255,.035)}
.lc-t small{color:var(--text-muted);font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-t>span{display:flex;align-items:center;gap:5px;min-width:0;color:var(--text-heading);font-size:14px;line-height:22px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-t>span img{width:22px;height:22px;object-fit:contain;flex:none}
.lc-t i{min-height:16px;color:var(--text-muted);font-size:11.5px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-t--rank{border-color:color-mix(in srgb,var(--accent) 40%,var(--border-hairline))}
.lc-t--none>span{color:var(--text-muted)}
/* «Отзывы» с оценкой — вся плитка кнопка окна отзывов */
.lc-t--link{width:100%;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.lc-t--link:hover{border-color:color-mix(in srgb,#f2c94c 55%,transparent);background:rgba(242,201,76,.07)}
.lc-t--link>span svg{flex:none;color:#f2c94c;fill:currentColor}

/* блоки: встают в ряд от своей ширины (--b, по данным) и растягиваются до края; длинный текст — своей строкой */
.lc__area{display:flex;flex-wrap:wrap;gap:6px;align-content:start}
.lc-b{--say:#9aa6c4;position:relative;flex:1 1 var(--b,200px);min-width:0;padding:7px 11px 9px;border:1px solid color-mix(in srgb,var(--say) 26%,transparent);border-radius:10px;
  background:color-mix(in srgb,var(--say) 7%,transparent);color:var(--text-body)}
.lc-b__lab{display:block;margin-bottom:4px;color:color-mix(in srgb,var(--say) 75%,#fff);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.lc-b__val{display:flex;align-items:center;gap:6px;color:var(--text-heading);font-size:16px;font-weight:600;line-height:24px;overflow-wrap:anywhere}
.lc-b__val img{width:24px;height:24px;object-fit:contain;flex:none}
.lc-b__val svg{flex:none;color:color-mix(in srgb,var(--say) 75%,#fff)}
.lc-b__val.is-strong{color:color-mix(in srgb,var(--say) 85%,#fff);font-size:18px}
.lc-b__sub{color:var(--text-muted);font-size:12px}
.lc-b__chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.lc-b__val+.lc-b__chips{margin-top:6px}
/* чипы блока — тем же примитивом, что плитки и блоки: прямоугольник со скруглением и тонкой рамкой, не «пилюля» */
.lc-b .chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px 2px 3px;border:1px solid var(--border-hairline);border-radius:7px;background:rgba(255,255,255,.04);color:var(--text-body);font-size:13px}
.lc-b .chip--text{padding:3px 9px}
.lc-b .chip img{width:22px;height:22px;border-radius:4px;object-fit:contain}
.lc-b__icons{display:flex;flex-wrap:wrap;gap:5px}
.lc-ic{position:relative;display:block;width:34px;height:34px}
.lc-ic>img:first-child{width:34px;height:34px;object-fit:contain}
.lc-ic__badge{position:absolute;right:-4px;bottom:-4px;width:17px;height:17px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.9))}
.lc-b--maps .lc-ic>img:first-child{border-radius:7px;object-fit:cover}
.lc-b__text{margin:0;white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.lc-b--accent{--say:var(--accent)}.lc-b--sky{--say:#5ec8ff}.lc-b--blue{--say:#4f8cff}.lc-b--violet{--say:#b59cff}
.lc-b--green{--say:#5fd1a8}.lc-b--gold{--say:#f2c94c}.lc-b--grey{--say:#9aa6c4}.lc-b--card{--say:var(--lc-c)}

/* текст не влез в свои строки (layout-comments.js отмечает .is-cut): подсказка в подписи, нажатие — всплывашка целиком */
.lc-b.is-cut{cursor:pointer}
.lc-b.is-cut:hover{border-color:color-mix(in srgb,var(--say) 55%,transparent)}
.lc-b.is-cut .lc-b__lab::after{content:"целиком ›";float:right;margin-left:8px;color:var(--text-muted);font-weight:600;letter-spacing:0;text-transform:none;font-size:11.5px}
.lc-b.is-cut .lc-b__text{-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.lc-pop{--say:#9aa6c4;position:fixed;z-index:60;max-height:60vh;overflow:auto;overscroll-behavior:contain;padding:7px 11px 10px;
  border:1px solid color-mix(in srgb,var(--say) 55%,transparent);border-radius:10px;background:var(--ink-800,#0A0F20);box-shadow:0 14px 40px rgba(0,0,0,.6);color:var(--text-body)}
.lc-pop .lc-b__lab::after{content:"свернуть ✕";float:right;color:var(--text-muted);font-weight:600;letter-spacing:0;text-transform:none;font-size:11.5px}
.lc-pop p{margin:0;white-space:pre-line;overflow-wrap:anywhere}

/* Общие кирпичи платформы: приглушённый текст, форма в окне (.fm, правило 14), «копировать», уведомление, подсказка-абзац,
   прокрутка таблицы, чип, «пусто», плитки цифр (Д55), строка «войди, чтобы писать» в чате окна, обёртка ленты, значок раздела,
   ряд кнопок, форма роли чемпиона. */
/* Приглушённый текст — общий для кирпичей сайта (окна колоды, карточки), не только страниц кабинета. */
.muted{color:var(--text-muted)}
/* Форма в окне (.fm; манифест, правило 14): строки «подпись — поле», «?» вместо абзацев-пояснений, выбор — _Choice (сегмент или список),
   подвал с действиями прилипает к низу окна. Одна на все окна: тренировки, КВ, бусты, заявки. */
.fm{display:grid;gap:16px;width:100%}
.fm__row{display:grid;gap:7px;min-width:0}
.fm__label{display:flex;align-items:center;gap:8px;color:var(--text-heading);font-size:13px;font-weight:600}
.fm__label small{color:var(--text-muted);font-weight:400;font-size:12px}
.fm input[type=text],.fm input[type=url],.fm input[type=number],.fm textarea{width:100%;box-sizing:border-box;padding:10px 14px;border-radius:var(--radius-xs);border:1px solid var(--border-strong);background:var(--ink-700);color:var(--text-heading);font:inherit;font-size:14px}
.fm textarea{min-height:76px;resize:vertical}
.fm input:focus-visible,.fm textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}
.fm .seg{flex-wrap:wrap;overflow:visible;justify-self:start}
.fm .sel__btn{min-width:0;width:100%}
.fm .sel{display:block}
.fm .sel__panel{width:100%;min-width:0}
.fm__two{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.fm__check{display:flex;align-items:center;gap:8px;color:var(--text-body);font-size:14px;cursor:pointer}
.fm__box{display:grid;gap:8px;padding:12px 14px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}
.fm__foot{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px -16px -16px;padding:12px 16px;border-top:1px solid var(--border-hairline);background:var(--ink-800)}
.fm__foot .hint{margin-left:auto}
.copy{padding:4px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:transparent;color:var(--text-body);font:inherit;font-size:13px;cursor:pointer}
.copy:hover{border-color:var(--accent)}
@media (pointer:coarse){.copy{min-height:36px}}
.notice{margin:0;padding:12px 16px;border-radius:var(--radius-sm);border:1px solid}
.notice--ok{border-color:#3fb950;background:rgba(63,185,80,.12)}
.notice--error{border-color:#f85149;background:rgba(248,81,73,.12)}
/* Текстовая подсказка-абзац под полем — не путать с .hint (кружок «?»): разные назначения, разные классы. */
.note{color:var(--text-muted);font-size:13px}
.table-scroll{width:100%;overflow-x:auto}
/* Чип (Д55) — значение с иконкой: ранг, роль, вид и цена буста. Цвет — --c: chip--color заливкой, chip--line контуром. */
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;border-radius:var(--radius-pill);background:rgba(255,255,255,.06);font-size:14px;color:var(--text-body)}
.chip img{width:26px;height:26px;border-radius:6px;object-fit:cover}
.chip--text,.chip--color,.chip--line{padding:3px 10px}
.chip--color{background:var(--c);color:#0c0f16;font-size:12px;font-weight:700}
.chip--line{background:none;border:1px solid var(--c);color:var(--c);font-size:12px;font-weight:700}
/* Пусто (Д55): «откликов нет», «своих заявок нет» — пунктирной рамкой, внутри можно ссылку или кнопку действия. */
.empty{display:grid;gap:10px;justify-items:start;margin:0;padding:14px 16px;border:1px dashed var(--border-hairline);border-radius:var(--radius-sm);color:var(--text-muted)}
.empty p{margin:0}
/* Цифры (Д55): итоги, статистика бустера и КВ, разбор матча, отчёт партнёру — плитками: подпись, число, прирост (em). */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;width:100%;margin:0 0 12px}
.stat{display:grid;align-content:start;gap:2px;padding:10px 12px;border:1px solid var(--border-hairline);border-radius:var(--radius-sm);background:rgba(255,255,255,.02)}
.stat span{font-size:12px;line-height:1.3;color:var(--text-muted)}
.stat b{font-size:20px;color:var(--text-heading);font-variant-numeric:tabular-nums}
.stat em{font-style:normal;color:#3fb950;font-size:13px}
.stats--big{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.stats--big .stat{padding:14px 16px}
.stats--big .stat b{font-size:26px}
.ew-guest{margin:0;padding:10px 14px;border-top:1px solid var(--border-hairline);color:var(--text-muted);font-size:13px}
.feed{width:100%}
.mic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:var(--c);background:color-mix(in srgb,var(--c) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent)}
.mic--sm{width:28px;height:28px;border-radius:8px}
.fx-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.crf{margin:0}
.crf__colors{display:flex;flex-wrap:wrap;gap:8px}
.crf__swatch{position:relative;width:30px;height:30px;border-radius:50%;background:var(--c);cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
.crf__swatch input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.crf__swatch:has(input:checked){outline:2px solid var(--text-heading);outline-offset:2px}
.crf__swatch:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.crf__head{margin:0 0 8px}
.crf__preview{color:var(--c);font-weight:700}
