/* v5.8 (просьба владельца, 11 октября 2026): СОЛО — табло справа сверху, «выбор из трёх», лавка торговца, итоги забега,
   выбор героя в окне «Герои» и таблица рекордов. Разметку строит js/solo.js. Новый вид — набор «Кузня» (ns-kit.css: плита окна,
   бирка, кнопки-плиты; карточки предметов — как в лавке перед ареной, kgame.js). Окна свёрстаны под кадр 1920×1080 и
   подгоняются autoFit (fit.js) под экраны от 1280×720 до 3840×2160. 1 пиксель интерфейса = 3 px. */

/* в соло нет круга, арены, таблицы игроков и жизней — на их месте табло соло */
body.solo #hud :is(#zoneinfo, #arenainfo, #alive, #board, #watchers, #lives) { display: none !important; }
body.solo #options .o-surr { display: none !important; }
.solo-win { z-index: 29; } /* ниже настроек (Esc поверх окна выбора) */
#solo-toast { position: fixed; left: 50%; bottom: 120px; transform: translateX(-50%); z-index: 46; padding: 8px 18px; pointer-events: none; font: 600 calc(15px * var(--fs, 1)) / 1.3 var(--ns-font, sans-serif); color: #ffe8c0; background: rgba(14, 12, 18, .92); box-shadow: 0 0 0 3px #08070b, inset 0 -3px 0 #2a2433; }

/* ---------- табло (внутри #topright, масштаб — у колонки) ---------- */
#solohud { --tc: #7fcf8e; margin: 0 0 6px; padding: 6px 8px 7px; text-align: center; color: #efe6d3; background: rgba(14, 12, 18, .82); box-shadow: 0 0 0 3px #08070b, 0 3px 0 rgba(0, 0, 0, .4); }
html.ns.nskit #hud #solohud { background: none; box-shadow: 0 3px 0 rgba(0, 0, 0, .4); border: 6px solid transparent; border-image: var(--k-block) 6 fill / 6px / 0 stretch; image-rendering: pixelated; padding: 3px 4px 5px; }
#solohud .sh-time { font: 800 calc(34px * var(--fs, 1)) / 1 var(--k-title, sans-serif); font-variant-numeric: tabular-nums; letter-spacing: .01em; color: #f2e5c6; text-shadow: 0 3px 0 #08070b; }
#solohud .sh-tier { display: flex; flex-direction: column; gap: 1px; margin-top: 4px; }
#solohud .sh-tn { color: var(--tc); font: 800 calc(15px * var(--fs, 1)) / 1.15 var(--k-font, sans-serif); text-shadow: 0 2px 0 #08070b; }
#solohud .sh-note { color: #a89e8b; font: 700 calc(10.5px * var(--fs, 1)) / 1.2 var(--k-font, sans-serif); letter-spacing: .06em; text-transform: uppercase; }
#solohud .sh-bar { position: relative; height: 9px; margin: 5px 2px 3px; background: #0e0c12; box-shadow: inset 0 3px 0 #08070b, 0 3px 0 #2b2535; }
#solohud .sh-bar i { position: absolute; left: 0; top: 3px; bottom: 0; width: 0; background: var(--tc); box-shadow: inset 0 3px 0 rgba(255, 255, 255, .25); transition: width .4s linear; }
#solohud .sh-next { color: #a89e8b; font: 600 calc(11.5px * var(--fs, 1)) / 1.25 var(--k-font, sans-serif); }
#solohud .sh-next b { color: #f3d897; font-weight: 800; font-variant-numeric: tabular-nums; }
/* v5.9: босс по расписанию — следующий и через сколько, убито из 15 (кадр 1920×1080; масштаб — как у всего табло) */
#solohud .sh-boss { display: flex; flex-direction: column; gap: 1px; margin-top: 4px; color: #a89e8b; font: 600 calc(11.5px * var(--fs, 1)) / 1.25 var(--k-font, sans-serif); }
#solohud .sh-boss b { color: #ff9a6a; font-weight: 800; font-variant-numeric: tabular-nums; }
#solohud .sh-bk b { color: #f3d897; }
#solohud .sh-bn:empty { display: none; }
#solohud .sh-k { display: flex; align-items: baseline; justify-content: center; gap: 8px; margin-top: 5px; padding-top: 5px; box-shadow: inset 0 3px 0 #0b0a0e, inset 0 6px 0 #221e2a; }
#solohud .sh-k span { color: #a89e8b; font: 700 calc(11px * var(--fs, 1)) / 1 var(--k-font, sans-serif); letter-spacing: .06em; text-transform: uppercase; }
#solohud .sh-kn { color: #f3d897; font: 800 calc(24px * var(--fs, 1)) / 1.05 var(--k-font, sans-serif); font-variant-numeric: tabular-nums; text-shadow: 0 2px 0 #08070b; }
#solohud .sh-best { color: #71695c; font: 600 calc(11px * var(--fs, 1)) / 1.2 var(--k-font, sans-serif); }
#solohud.rec .sh-best { color: #7fcf8e; }
@keyframes so-flash { 0%, 100% { filter: none; } 50% { filter: brightness(1.6) drop-shadow(0 0 6px var(--tc)); } }
#solohud.flash { animation: so-flash .7s steps(4) 5; }
#solohud.flash .sh-tn { font-size: calc(18px * var(--fs, 1)); }

/* ---------- окна: выбор из трёх и торговец ---------- */
html.ns .solo-win { --pf: min(var(--fs, 1.3), 1.4); }
html.ns.nskit .solo-win > .sc-panel { --k-pt: 18px; --k-px: 24px; --k-pb: 16px; width: 1176px; max-width: none; max-height: none; overflow: visible; flex-shrink: 0; }
.solo-win .sc-sub { margin: 0 0 18px; text-align: center; color: #a89e8b; font: 600 calc(15px * var(--fs, 1)) / 1.35 var(--k-font, sans-serif); }
.solo-win .sc-sub b { color: #f3d897; }
.solo-win .sc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; padding: 24px 12px 0; }
html.ns.kg .solo-win .scard.kc { height: 560px; }
/* 13 окт. 2026 (просьба владельца — «шрифт маленький, можно крупнее»): название 19.5 → 23 px, описание 17 → 19, превью,
   редкость и метка крупнее; длинное описание уменьшается само (kgame.js fitDescs) */
html.ns .solo-win .scard.kc .kc-name { font-size: calc(18px * var(--pf)); }
html.ns .solo-win .scard.kc .kc-cat { margin-top: 6px; font-size: 13px; }
html.ns .solo-win .scard.kc .kc-desc { font-size: calc(14.5px * var(--pf)); line-height: 1.4; }
html.ns .solo-win .scard.kc .kc-prev { font-size: calc(12px * var(--pf)); }
html.ns .solo-win .scard.kc .kc-tag { padding: 4px 9px 3px; font-size: 14px; }
/* «Взять» вместо цены: колпачок клавиши и слово */
html.ns .solo-win .scard.kc .kc-take { gap: 10px; }
html.ns .solo-win .scard.kc .kc-take span { color: #f3d897; font: 800 18px / 1.2 var(--k-font); letter-spacing: .02em; text-shadow: 0 2px 0 #08070b; }
.solo-win .sc-foot { display: flex; align-items: center; gap: 18px; margin-top: 24px; padding-top: 15px; box-shadow: inset 0 3px 0 #0b0a0e, inset 0 6px 0 #2a2433; }
.solo-win .sc-gold { display: inline-flex; align-items: center; gap: 9px; color: #f3d897; font: 800 24px / 1 var(--k-font, sans-serif); font-variant-numeric: tabular-nums; text-shadow: 0 2px 0 #08070b; }
.solo-win .sc-btns { display: flex; gap: 12px; margin-left: auto; }
.solo-win .sc-btns .btn { display: inline-flex; align-items: center; gap: 8px; }
.solo-win .sc-btns .btn b { font-weight: 800; color: #f3d897; font-variant-numeric: tabular-nums; }
.solo-win .sc-btns .btn:disabled b { color: inherit; }
.solo-win .sc-btns .btn .k-ic.coin { width: 21px; height: 21px; }
.solo-win .sc-keys { display: inline-flex; align-items: center; gap: 6px; color: #71695c; font: 600 13px / 1 var(--k-font, sans-serif); }
.solo-win .sc-keys span { margin-left: 4px; }
html:not(.ns) .solo-win .panel { width: min(1100px, 94vw); }
/* торговец — 3 товара (11 окт., просьба владельца; было 6 в широком окне): окно и карточки — как у «выбора из трёх» */
#soloshop .sc-keys { display: none; }

/* ---------- итоги забега ---------- */
html.ns.nskit #solofin > .sf-panel { --k-pt: 18px; --k-px: 30px; --k-pb: 18px; width: 1140px; max-width: none; max-height: none; overflow: visible; flex-shrink: 0; }
#solofin .sf-top { display: flex; align-items: center; gap: 36px; margin: 6px 0 18px; }
#solofin .sf-port { flex: none; width: 168px; height: 168px; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 24px; box-sizing: border-box; }
#solofin .sf-port canvas { image-rendering: pixelated; }
#solofin .sf-main { min-width: 0; }
#solofin .sf-time { margin: 6px 0 4px; color: #f2e5c6; font: 800 76px / 1 var(--k-title, sans-serif); font-variant-numeric: tabular-nums; text-shadow: 0 5px 0 #08070b; }
#solofin .sf-tier { font: 800 22px / 1.2 var(--k-font, sans-serif); text-shadow: 0 2px 0 #08070b; }
#solofin .sf-by { margin-top: 6px; color: #a89e8b; font: 600 16px / 1.3 var(--k-font, sans-serif); }
#solofin .sf-by b { color: #f08a7c; }
#solofin .sf-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
#solofin .sf-stats > div { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 6px 10px; background: #16131c; box-shadow: inset 0 3px 0 #08070b, inset 0 -3px 0 #2b2535; }
#solofin .sf-stats span { color: #71695c; font: 700 11px / 1.2 var(--k-font, sans-serif); letter-spacing: .06em; text-transform: uppercase; text-align: center; }
#solofin .sf-stats b { color: #efe6d3; font: 800 26px / 1 var(--k-font, sans-serif); font-variant-numeric: tabular-nums; }
#solofin .sf-stats b small { color: #71695c; font-size: 13px; font-weight: 600; }
#solofin .sf-stats .k b { color: #f3d897; font-size: 32px; }
#solofin .sf-rec { margin: 18px 0 12px; text-align: center; color: #a89e8b; font: 600 16px / 1.6 var(--k-font, sans-serif); }
#solofin .sf-rec b { color: #f3d897; }
#solofin .sf-rec .k-stamp { margin-right: 12px; font-size: 18px; }
#solofin .sf-btns { display: flex; justify-content: center; gap: 15px; margin-top: 18px; }
#solofin .sf-btns .btn { min-width: 200px; }
#solofin .sf-btns .btn.big { min-width: 320px; font-size: calc(18px * var(--fs, 1)); }
#solofin .sf-btns .btn b { font-weight: 800; }

/* таблица рекордов: в итогах забега (#solofin) и в окне «Рейтинг» → «Соло» (там общие стили .st-table из ns-windows.css) */
#solofin .so-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; color: #efe6d3; font: 500 15px / 1.25 var(--k-font, sans-serif); }
#solofin .so-table th { padding: 6px 10px 9px; text-align: left; color: #71695c; font: 600 11px / 1.2 var(--k-font, sans-serif); letter-spacing: .06em; text-transform: uppercase; box-shadow: inset 0 -3px 0 #0b0a0e; }
#solofin .so-table td { height: 36px; padding: 2px 10px; }
#solofin .so-table tbody tr:nth-child(even) td { background: #1f1b27; }
#solofin .so-table tr.me td { background: #2a2419 !important; }
#solofin .so-table tr.me td:first-child { box-shadow: inset 6px 0 0 #d9b46a; }
#solofin .so-table td.pl { color: #a89e8b; font: 700 19px / 1 var(--k-title, sans-serif); }
#solofin .so-table td.pl.p1 { color: #f3d897; } #solofin .so-table td.pl.p2 { color: #c9cfd8; } #solofin .so-table td.pl.p3 { color: #d29a62; }
:is(#solofin, #stats-pop) .so-table :is(th, td).num { text-align: right; font-variant-numeric: tabular-nums; }
:is(#solofin, #stats-pop) .so-table :is(th, td).c { text-align: center; }
:is(#solofin, #stats-pop) .so-table td.fav { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
:is(#solofin, #stats-pop) .so-table td.fav canvas { vertical-align: middle; margin-right: 8px; }
:is(#solofin, #stats-pop) .so-table td.who .nk { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html.ns.nskit #stats-pop .so-table td.num b { color: #f3d897; font: 800 calc(19px * var(--fs, 1)) / 1 var(--k-font); }
:is(#solofin, #stats-pop) .so-table col.c1 { width: 70px; }

/* ---------- выбор героя для соло: окно «Герои» с полосой «В забег» ---------- */
#hl-solo { display: none; }
#herolist.solo-pick #hl-solo { display: flex; align-items: center; gap: 15px; margin-top: 18px; padding-top: 15px; box-shadow: inset 0 3px 0 #0b0a0e, inset 0 6px 0 #221e2a; }
#herolist.solo-pick .hl-foot { display: none !important; }
#hl-solo .hs-rec { flex: 1; min-width: 0; color: #a89e8b; font: 600 calc(15px * var(--fs, 1)) / 1.3 var(--k-font, sans-serif); }
#hl-solo .hs-rec b { color: #f3d897; font-weight: 800; }
#hl-solo .btn { flex: none; }
#hl-solo .btn.big b { font-weight: 800; }
html.ns.nskit #hl-solo .btn {
  position: relative; border-style: solid !important; border-color: transparent !important; border-width: 6px 6px 9px !important; border-radius: 0 !important;
  border-image: var(--k-btn) 6 6 9 fill / 6px 6px 9px / 0 stretch !important; background: none !important; box-shadow: none !important; image-rendering: pixelated;
  padding: 6px 18px 5px !important; color: var(--k-text); text-shadow: 0 2px 0 rgba(0, 0, 0, .45); letter-spacing: 0; text-transform: none; font: 600 calc(16px * var(--fs, 1)) / 1.2 var(--k-font); transition: none;
}
html.ns.nskit #hl-solo .btn:hover { border-image-source: var(--k-btn-hi) !important; color: #fff; }
html.ns.nskit #hl-solo .btn:active { border-image-source: var(--k-btn-dn) !important; transform: translateY(3px); }
html.ns.nskit #hl-solo .btn.big { min-width: 360px; border-image-source: var(--k-btn-gold) !important; color: var(--k-on-gold); text-shadow: 0 2px 0 rgba(255, 240, 200, .35); font-size: calc(19px * var(--fs, 1)); }
html.ns.nskit #hl-solo .btn.big:hover { border-image-source: var(--k-btn-gold-hi) !important; }
html.ns.nskit #hl-solo .btn.big:active { border-image-source: var(--k-btn-gold-dn) !important; }
/* бирка «Соло · выберите героя» — золотом */
html.ns.nskit #herolist.solo-pick .hl-head b { color: var(--k-gold-hi); }

/* главное меню: пять пунктов — меню чуть выше, чтобы под ним осталась строка разделов */
html.ns .lobby-stage #M-menu { top: 500px !important; }
html.ns .lobby-stage #M-sub { top: 836px !important; }
