@font-face{
  font-family:'Unbounded';font-style:normal;font-weight:700;font-display:swap;
  src:url(unb-lat.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2122,U+2212;
}
@font-face{
  font-family:'Unbounded';font-style:normal;font-weight:700;font-display:swap;
  src:url(unb-cyr.woff2) format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* ══════════════════════════════════════════════════════════════
   VZP STATS
   Тёмная тема одна и осознанно: логотип, игра и Discord живут в
   тёмном. Фон многослойный: медленные пятна света, шестиугольная
   сетка как отсылка к точкам на карте, и зерно поверх, чтобы
   градиенты не выглядели пластиковыми.
══════════════════════════════════════════════════════════════ */
:root{
  /* старые имена оставлены псевдонимами: ими пользуется весь файл */
  --violet:var(--acc); --violet-hi:var(--acc-hi); --magenta:var(--acc-hi);
  --amber:var(--acc-hi); --cyan:var(--text-2);
  --teal:var(--pos); --lime:var(--pos); --red:var(--neg);
  --gold:var(--text); --silver:var(--text-2); --bronze:var(--muted);
  --mono:ui-monospace,"SFMono-Regular","JetBrains Mono","Cascadia Mono",Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --maxw:1320px; --pad:clamp(14px,3vw,34px);
  --r:14px;
}
/* Общее для всех тем: размеры, скругления, шрифт заголовков. */
html{
  --r:12px;
  --h-family:var(--sans); --h-size:19px; --h2-size:15.5px; --h-weight:400;
  --h-tt:uppercase; --h-track:.14em; --h-color:var(--text);
  --champ-family:'Unbounded','Avenir Next','Segoe UI Variable Display',system-ui,sans-serif;
  --champ-size:clamp(20px,2.4vw,28px); --champ-weight:700;
  --champ-tt:none; --champ-track:-.02em;
  /* Стороны боя красим одинаково во всех темах: зелёное это атака,
     красное это защита. Полоса читается без подписи. */
  --win:#35D06E; --lose:#F05252;
  --card-fill:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.012));
  --shadow:0 26px 52px -36px rgba(0,0,0,.95);
}

/* ── ГРАФИТ: строгий монитор, один зелёный сигнал ─────────── */
html,html[data-theme="graphite"]{
  --ink:#0A0B0D; --ink2:#0E1013; --panel:#131518; --panel2:#181B1F;
  --line:#282C31; --line2:#1D2125;
  --text:#F2F5F7; --text-2:#CBD1D7; --muted:#9AA2AA; --dim:#787F87;
  --acc:#4ADE80; --acc-hi:#86EFAC; --pos:#4ADE80; --neg:#F87171;
  --t1:#4ADE80; --t2:#6FB3F5; --t3:#E2E8ED; --t4:#838C95; --t5:#F87171;
}
/* ── УЛЬТРАФИОЛЕТ: фирменный, мягкое свечение ─────────────── */
html[data-theme="violet"]{
  --ink:#0B0A12; --ink2:#0F0E18; --panel:#171526; --panel2:#1D1A30;
  --line:#2E2A45; --line2:#221F35;
  --text:#F6F4FF; --text-2:#D6D0F0; --muted:#B2ABD0; --dim:#8B84AC;
  --acc:#8B6BFF; --acc-hi:#BBA6FF; --pos:#3FD98A; --neg:#FF6B7E;
  --t1:#A78BFA; --t2:#59C1F2; --t3:#DDD8F5; --t4:#8B84AC; --t5:#FF6B7E;
}
/* ── СТАЛЬ: холодный чертёж, янтарный сигнал ──────────────── */
html[data-theme="steel"]{
  --ink:#0C1016; --ink2:#10151C; --panel:#151B24; --panel2:#1A2129;
  --line:#2A3440; --line2:#1E262F;
  --text:#EEF3F8; --text-2:#C3CEDA; --muted:#94A2B2; --dim:#71808F;
  --acc:#E0A458; --acc-hi:#F2C285; --pos:#5FC9A0; --neg:#E4707E;
  --t1:#E0A458; --t2:#7FB2D9; --t3:#DCE5EC; --t4:#8A97A6; --t5:#E4707E;
}
/* ── КАРМИН: чёрное с красным ─────────────────────────────── */
html[data-theme="carmine"]{
  --ink:#08080A; --ink2:#0C0B0D; --panel:#141213; --panel2:#1A1719;
  --line:#2E2628; --line2:#211C1E;
  --text:#F7F3F3; --text-2:#D8CCCD; --muted:#A79A9C; --dim:#807375;
  --acc:#E5484D; --acc-hi:#FF7A7E; --pos:#7FD8A0; --neg:#E5484D;
  --t1:#FF8A8E; --t2:#E0B15C; --t3:#E8DDDE; --t4:#93868A; --t5:#7A5A5E;
}

/* ── ОКЕАН: глубокая вода, бирюзовый сигнал ───────────────── */
html[data-theme="ocean"]{
  --ink:#07131A; --ink2:#0A1922; --panel:#0F222C; --panel2:#142B37;
  --line:#22414F; --line2:#19303C;
  --text:#EAF6FA; --text-2:#B9D6E0; --muted:#8FB0BC; --dim:#6C8D99;
  --acc:#37C8C3; --acc-hi:#7FE3DE; --pos:#4ADE80; --neg:#F2707F;
  --t1:#37C8C3; --t2:#7FB6E0; --t3:#D8E6EC; --t4:#7E9BA6; --t5:#F2707F;
}
/* ── ПЕСОК: тёплый камень, песочный сигнал ────────────────── */
html[data-theme="sand"]{
  --ink:#12100C; --ink2:#171410; --panel:#1E1A14; --panel2:#26211A;
  --line:#3A3226; --line2:#2A241B;
  --text:#F6F1E7; --text-2:#DCD0BC; --muted:#B0A691; --dim:#8B8171;
  --acc:#D9B382; --acc-hi:#F0D3A9; --pos:#9CC46A; --neg:#DB7A6B;
  --t1:#D9B382; --t2:#A8C08A; --t3:#EBE2D2; --t4:#9A907E; --t5:#DB7A6B;
}
/* ── ЛАЙМ: почти чёрный, кислотный сигнал ─────────────────── */
html[data-theme="lime"]{
  --ink:#0B0D0A; --ink2:#0F120D; --panel:#141810; --panel2:#1A1F15;
  --line:#2A3222; --line2:#1E2419;
  --text:#F3F7EE; --text-2:#CFDCC2; --muted:#9EAE90; --dim:#7B8A6E;
  --acc:#B4F03C; --acc-hi:#D2FA86; --pos:#B4F03C; --neg:#FF6B6B;
  --t1:#B4F03C; --t2:#6ECBE0; --t3:#DCE6D4; --t4:#8A9A7C; --t5:#FF6B6B;
}
/* ── РОЗА: тёмная слива, розовый сигнал ───────────────────── */
html[data-theme="rose"]{
  --ink:#120B10; --ink2:#170F15; --panel:#1E141C; --panel2:#261A23;
  --line:#3B2836; --line2:#2A1C27;
  --text:#FBF0F7; --text-2:#E4C9DA; --muted:#BC9CB0; --dim:#96798B;
  --acc:#F2679F; --acc-hi:#FF9CC2; --pos:#7FD8A8; --neg:#FF6B6B;
  --t1:#FF9CC2; --t2:#9B8BF0; --t3:#EFDCE7; --t4:#A98B9E; --t5:#E0503C;
}
/* ── ПОЛНОЧЬ: синие чернила, ледяной сигнал ───────────────── */
html[data-theme="midnight"]{
  --ink:#080C18; --ink2:#0B1020; --panel:#101729; --panel2:#151E36;
  --line:#243052; --line2:#1A233D;
  --text:#EDF2FF; --text-2:#C3CFEE; --muted:#93A2CA; --dim:#6F7EA6;
  --acc:#5B8DEF; --acc-hi:#9CBBFF; --pos:#57D9A3; --neg:#FF7A93;
  --t1:#7FB0FF; --t2:#5AD1C0; --t3:#D6DEF3; --t4:#8291B8; --t5:#FF7A93;
}

/* ── МОНО: ни капли цвета в корпусе, цвет только у сигналов ─
      Плотную таблицу проще всего читать, когда иерархию держит
      яркость, а не оттенок. Здесь так и сделано: пять ступеней
      серого и два цвета на весь сайт — рост и падение. */
html[data-theme="mono"]{
  --ink:#0A0A0A; --ink2:#0E0E0E; --panel:#151515; --panel2:#1B1B1B;
  --line:#2C2C2C; --line2:#1F1F1F;
  --text:#FFFFFF; --text-2:#D4D4D4; --muted:#9E9E9E; --dim:#7A7A7A;
  --acc:#E8E8E8; --acc-hi:#FFFFFF; --pos:#35D06E; --neg:#F05252;
  --t1:#FFFFFF; --t2:#C3C3C3; --t3:#969696; --t4:#6E6E6E; --t5:#F05252;
}
/* ── ЛАТУНЬ: холодный уголь и густое золото ─────────────────
      Корпус нарочно нейтрально-холодный: золото на тёплом фоне
      выцветает, на холодном звенит. */
html[data-theme="brass"]{
  --ink:#0B0C0E; --ink2:#101114; --panel:#16181C; --panel2:#1C1F24;
  --line:#2E323A; --line2:#212530;
  --text:#F5F7F9; --text-2:#D3D9E0; --muted:#A2A9B3; --dim:#7E858F;
  --acc:#F5CC3D; --acc-hi:#FFE58A; --pos:#5BD08A; --neg:#EF5A6F;
  --t1:#F5CC3D; --t2:#8FBBD9; --t3:#DDE3EA; --t4:#838C97; --t5:#EF5A6F;
}
/* ── ВОЛЬТ: приборный чёрный, электрический циан ────────────
      Сигналы разведены по краям круга: циан — акцент, лайм —
      рост, малина — падение, спутать нечего. */
html[data-theme="voltage"]{
  --ink:#0A0A0B; --ink2:#0D0D0F; --panel:#141416; --panel2:#1A1A1D;
  --line:#2C2D31; --line2:#1F2023;
  --text:#F4F5F6; --text-2:#D0D2D4; --muted:#9B9DA0; --dim:#77797C;
  --acc:#22D3EE; --acc-hi:#7DE9FB; --pos:#35D06E; --neg:#F05252;
  --t1:#22D3EE; --t2:#A78BFA; --t3:#E4E7EA; --t4:#82868C; --t5:#F05252;
}
/* ── GTA5RP (g5theme 14.09.2026): оформление сайта по умолчанию ─────────
      Цвета gta5rp-bot.com: графитовый корпус, оранжевый акцент. Прежний вид
      в копии /home/ubuntu/site-backups/before-g5-20260914. */
html[data-theme="g5"]{
  --ink:#0E0F13; --ink2:#111318; --panel:#14161C; --panel2:#1A1C22;
  --line:#26282F; --line2:#1D1F25;
  --text:#F5F6FA; --text-2:#DBDEE1; --muted:#B4B6BE; --dim:#8C8E98;
  --acc:#FC7C20; --acc-hi:#FCA929; --pos:#35D06E; --neg:#F05252;
  --t1:#FC7C20; --t2:#FFB800; --t3:#DBDEE1; --t4:#8C8E98; --t5:#F05252;
  --logo-rot:0deg; --logo-sat:1; --mark-o:.06;
}
/* ── СЕМАФОР: нейтральный корпус, зелёный и красный ───────── */
html[data-theme="semafor"]{
  --ink:#0A0B0A; --ink2:#0D0F0D; --panel:#141614; --panel2:#1A1D1A;
  --line:#2C302C; --line2:#1F231F;
  --text:#F3F6F3; --text-2:#CFD5CF; --muted:#9AA29A; --dim:#767D76;
  --acc:#34D07A; --acc-hi:#6EE7A5; --pos:#34D07A; --neg:#F4515F;
  --t1:#34D07A; --t2:#6FB6F0; --t3:#E1E6E1; --t4:#7C857C; --t5:#F4515F;
}
/* ── ТУМАН: корпус на ступень светлее чёрного ───────────────
      Единственная тема без чёрного: серо-синие плоскости мягче
      к глазам на длинном чтении таблиц, контраст ниже, но всё
      равно выше нормы. */
html[data-theme="fog"]{
  --ink:#171A1F; --ink2:#1B1F25; --panel:#21262D; --panel2:#282E36;
  --line:#3B434E; --line2:#2D343D;
  --text:#F3F6F9; --text-2:#CDD5DE; --muted:#A6B0BB; --dim:#87919C;
  --acc:#8FC7F0; --acc-hi:#C0E1FB; --pos:#6FD9A6; --neg:#F2808F;
  --t1:#8FC7F0; --t2:#7FD8B0; --t3:#E9EEF4; --t4:#97A1AC; --t5:#F2808F;
}
/* ── ЖАР: холодная индиго-база, горячий оранжевый ───────────
      Падение уводим в малиновый, чтобы оно не читалось как
      бледный оранжевый. */
html[data-theme="ember"]{
  --ink:#0C0D12; --ink2:#101218; --panel:#171A21; --panel2:#1D212A;
  --line:#30353F; --line2:#222630;
  --text:#F8F6F4; --text-2:#D8D2CC; --muted:#A79F98; --dim:#847C76;
  --acc:#FF8A3D; --acc-hi:#FFB47A; --pos:#46D9A8; --neg:#F2456B;
  --t1:#FF8A3D; --t2:#7FC4E8; --t3:#EDE6E0; --t4:#8E877F; --t5:#F2456B;
}

/* поворот тона логотипа под акцент каждой темы */
html[data-theme="graphite"]{--logo-rot:-45deg}
html[data-theme="violet"]{--logo-rot:68deg}
html[data-theme="steel"]{--logo-rot:-154deg}
html[data-theme="carmine"]{--logo-rot:171deg}
html[data-theme="ocean"]{--logo-rot:-9deg}
html[data-theme="sand"]{--logo-rot:-154deg}
html[data-theme="lime"]{--logo-rot:-109deg}
html[data-theme="rose"]{--logo-rot:150deg}
html[data-theme="midnight"]{--logo-rot:33deg}
html[data-theme="brass"]{--logo-rot:-140deg}
html[data-theme="voltage"]{--logo-rot:0deg}
html[data-theme="semafor"]{--logo-rot:-39deg}
html[data-theme="fog"]{--logo-rot:18deg}
html[data-theme="ember"]{--logo-rot:-162deg}
/* «Моно» обесцвечивает знак целиком */
html[data-theme="mono"]{--logo-rot:0deg;--logo-sat:0}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable;color-scheme:dark}
select{color-scheme:dark}
select option{background:var(--panel);color:var(--text)}
body{
  margin:0;color:var(--text);font-family:var(--sans);
  background:
    radial-gradient(1100px 620px at 50% -12%, color-mix(in srgb, var(--acc) 10%, transparent), transparent 62%),
    linear-gradient(180deg,var(--ink2) 0%,var(--ink) 46%,var(--ink) 100%);
  background-attachment:fixed;
  font-size:15.5px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}

/* ── фон ─────────────────────────────────────────────────── */
.bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(130px);opacity:.10;will-change:transform}
.b1{width:52vw;height:52vw;left:-12vw;top:-16vw;background:radial-gradient(circle,var(--acc),transparent 62%);animation:f1 34s ease-in-out infinite}
.b2{width:46vw;height:46vw;right:-14vw;top:-8vw;background:radial-gradient(circle,var(--acc),transparent 62%);opacity:.10;animation:f2 44s ease-in-out infinite}
.b3{display:none}
@keyframes f1{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6vw,7vh,0) scale(1.12)}}
@keyframes f2{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-7vw,9vh,0) scale(1.08)}}
@keyframes f3{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-5vw,-8vh,0) scale(1.14)}}
/* Соты медленно вспыхивают по одной: это война за точки, и фон об этом
   напоминает, не отвлекая от чтения. */
.cells{position:absolute;inset:0}
.cells i{
  position:absolute;width:104px;height:120px;display:block;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  background:color-mix(in srgb, var(--acc) 16%, transparent);opacity:0;animation:cell 22s ease-in-out infinite;
}
.cells i.g{background:color-mix(in srgb, var(--pos) 13%, transparent)}
@keyframes cell{0%,72%,100%{opacity:0}12%,52%{opacity:.5}}
.scan{
  position:absolute;left:-30%;right:-30%;height:70vh;top:-20vh;
  background:linear-gradient(100deg,transparent 38%,color-mix(in srgb, var(--acc-hi) 7%, transparent) 50%,transparent 62%);
  animation:scan 26s linear infinite;
}
@keyframes scan{0%{transform:translate3d(-12%,0,0)}50%{transform:translate3d(12%,6vh,0)}100%{transform:translate3d(-12%,0,0)}}
.hexes{
  position:absolute;inset:-2px;opacity:.22;
  mask-image:radial-gradient(80% 60% at 50% 0%,#000 25%,transparent 78%);
  -webkit-mask-image:radial-gradient(80% 60% at 50% 0%,#000 25%,transparent 78%);
}
.hexes::before{
  content:"";position:absolute;inset:0;
  background:color-mix(in srgb, var(--acc) 42%, var(--line));
  mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='56' height='96' viewBox='0 0 56 96'><g fill='none' stroke='%23000' stroke-width='1'><path d='M28 0 L56 16 L56 48 L28 64 L0 48 L0 16 Z'/><path d='M28 32 L56 48'/><path d='M28 64 L28 96'/></g></svg>");
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='56' height='96' viewBox='0 0 56 96'><g fill='none' stroke='%23000' stroke-width='1'><path d='M28 0 L56 16 L56 48 L28 64 L0 48 L0 16 Z'/><path d='M28 32 L56 48'/><path d='M28 64 L28 96'/></g></svg>");
  mask-size:56px 96px;-webkit-mask-size:56px 96px;
  mask-repeat:repeat;-webkit-mask-repeat:repeat;
}
.grain{
  position:absolute;inset:0;opacity:.06;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.5'/></svg>");
}
.vignette{position:absolute;inset:0;background:radial-gradient(130% 95% at 50% 0%,transparent 45%,color-mix(in srgb, var(--ink) 82%, transparent) 100%)}

/* ══ ФОНЫ ══════════════════════════════════════════════════
   Пять вариантов живого фона. Все слои лежат в разметке всегда,
   показывает нужные атрибут data-look на html. Тяжёлые варианты
   рисует один общий холст и только пока он видим. */
#bgc{position:absolute;inset:0;width:100%;height:100%;display:none}
.radar,.aurora{position:absolute;inset:0;display:none;overflow:hidden}

/* У каждой темы свой фон, отдельного выбора фона больше нет. */
.cells,.scan{display:none}
html,html[data-theme="graphite"]{ }
html:not([data-theme]) #bgc,html[data-theme="graphite"] #bgc{display:block}
html:not([data-theme]) .hexes,html[data-theme="graphite"] .hexes{opacity:0}
html:not([data-theme]) .blob,html[data-theme="graphite"] .blob{display:none}

html[data-theme="violet"] .cells,html[data-theme="violet"] .scan{display:block}
html[data-theme="violet"] .hexes{opacity:.24}
html[data-theme="violet"] .blob{opacity:.13}

html[data-theme="steel"] .radar{display:block}
html[data-theme="steel"] .hexes{opacity:.12}
html[data-theme="steel"] .blob{display:none}

html[data-theme="ocean"] .radar{display:block}
html[data-theme="ocean"] .hexes{opacity:.12}
html[data-theme="ocean"] .blob{display:none}

html[data-theme="sand"] .cells,html[data-theme="sand"] .scan{display:block}
html[data-theme="sand"] .hexes{opacity:.20}
html[data-theme="sand"] .blob{opacity:.10}

html[data-theme="lime"] #bgc{display:block}
html[data-theme="lime"] .hexes{opacity:0}
html[data-theme="lime"] .blob{display:none}

html[data-theme="rose"] .aurora{display:block}
html[data-theme="rose"] .hexes{opacity:0}
html[data-theme="rose"] .blob{display:none}

html[data-theme="midnight"] .cells{display:block}
html[data-theme="midnight"] .hexes{opacity:.18}
html[data-theme="midnight"] .blob{opacity:.12}

html[data-theme="carmine"] .aurora{display:block}
html[data-theme="carmine"] .hexes{opacity:0}
html[data-theme="carmine"] .blob{display:none}
html[data-theme="carmine"] .grain{opacity:.14}

html[data-theme="mono"] .dust{display:block}
html[data-theme="g5"] .dust{display:block}
html[data-theme="g5"] .hexes{opacity:0}
html[data-theme="g5"] .blob{display:none}
html[data-theme="mono"] .hexes{opacity:0}
html[data-theme="mono"] .blob{display:none}

html[data-theme="brass"] .scan{display:block}
html[data-theme="brass"] .hexes{opacity:.15}
html[data-theme="brass"] .blob{opacity:.09}

html[data-theme="voltage"] .floor,html[data-theme="voltage"] .scope{display:block}
html[data-theme="voltage"] body{
  background:
    radial-gradient(1200px 520px at 50% 106%, color-mix(in srgb, var(--acc) 15%, transparent), transparent 66%),
    linear-gradient(180deg,var(--ink2) 0%,var(--ink) 40%,var(--ink) 100%);
  background-attachment:fixed;
}
html[data-theme="voltage"] .vignette{opacity:.35}
html[data-theme="voltage"] .hexes{opacity:0}
html[data-theme="voltage"] .blob{display:none}

html[data-theme="semafor"] .floor,html[data-theme="semafor"] .scope{display:block}
html[data-theme="semafor"] body{
  background:
    radial-gradient(1200px 520px at 50% 106%, color-mix(in srgb, var(--acc) 13%, transparent), transparent 66%),
    linear-gradient(180deg,var(--ink2) 0%,var(--ink) 40%,var(--ink) 100%);
  background-attachment:fixed;
}
html[data-theme="semafor"] .vignette{opacity:.35}
html[data-theme="semafor"] .hexes{opacity:0}
html[data-theme="semafor"] .blob{display:none}

html[data-theme="fog"] .hexes{opacity:.10}
html[data-theme="fog"] .blob{opacity:.20}
html[data-theme="fog"] .vignette{opacity:.5}

html[data-theme="ember"] .aurora{display:block}
/* сияние приглушено: холодная база темы должна остаться видна */
html[data-theme="ember"] .aurora{opacity:.42}
html[data-theme="ember"] .hexes{opacity:0}
html[data-theme="ember"] .blob{display:none}
.radar i{
  position:absolute;left:50%;top:-30vh;width:200vh;height:200vh;transform:translateX(-50%);
  border-radius:50%;display:block;
  background:
    repeating-radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--acc) 15%, transparent) 0 1px, transparent 1px 74px),
    conic-gradient(from 0deg at 50% 50%, color-mix(in srgb, var(--acc) 26%, transparent), color-mix(in srgb, var(--acc) 4%, transparent) 24%, transparent 40%);
  animation:radar 16s linear infinite;
  mask-image:radial-gradient(circle at 50% 50%, #000 10%, transparent 78%);
  -webkit-mask-image:radial-gradient(circle at 50% 50%, #000 10%, transparent 78%);
}
@keyframes radar{to{transform:translateX(-50%) rotate(360deg)}}

/* северное сияние */
html[data-look="aurora"] .aurora{display:block}
html[data-look="aurora"] .hexes{opacity:0}
html[data-look="aurora"] .blob{display:none}
.aurora i{
  position:absolute;display:block;border-radius:46% 54% 58% 42%/48% 44% 56% 52%;
  filter:blur(95px);mix-blend-mode:screen;
}
.aurora .a1{width:70vw;height:56vh;left:-12vw;top:-16vh;background:color-mix(in srgb, var(--acc) 34%, transparent);animation:aur1 34s ease-in-out infinite}
.aurora .a2{width:60vw;height:50vh;right:-10vw;top:2vh;background:color-mix(in srgb, var(--acc-hi) 16%, transparent);animation:aur2 44s ease-in-out infinite}
.aurora .a3{width:80vw;height:60vh;left:10vw;top:34vh;background:color-mix(in srgb, var(--acc) 22%, transparent);animation:aur3 52s ease-in-out infinite}
@keyframes aur1{0%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}50%{transform:translate3d(8vw,7vh,0) rotate(22deg) scale(1.16)}}
@keyframes aur2{0%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}50%{transform:translate3d(-9vw,10vh,0) rotate(-18deg) scale(1.12)}}
@keyframes aur3{0%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}50%{transform:translate3d(-6vw,-9vh,0) rotate(14deg) scale(1.2)}}

/* Пыль: редкие неподвижные точки, как далёкие метки на карте.
   Ни одного цветного пикселя — слой для «Моно». */
.dust,.floor{position:absolute;inset:0;display:none}
.dust,.dust i{
  --d:color-mix(in srgb, var(--text-2) 34%, transparent);
  background-repeat:repeat;
}
.dust{
  background-image:
    radial-gradient(1.5px 1.5px at 26px 44px,var(--d),transparent 100%),
    radial-gradient(1px 1px at 148px 108px,var(--d),transparent 100%),
    radial-gradient(1.7px 1.7px at 232px 26px,var(--d),transparent 100%),
    radial-gradient(1px 1px at 84px 214px,var(--d),transparent 100%),
    radial-gradient(1.2px 1.2px at 268px 186px,var(--d),transparent 100%);
  background-size:300px 300px;
  animation:dustA 26s ease-in-out infinite;
}
.dust i{
  position:absolute;inset:0;display:block;
  background-image:
    radial-gradient(1px 1px at 60px 90px,var(--d),transparent 100%),
    radial-gradient(1.4px 1.4px at 190px 44px,var(--d),transparent 100%),
    radial-gradient(1px 1px at 120px 176px,var(--d),transparent 100%);
  background-size:210px 210px;
  animation:dustB 34s ease-in-out infinite;
}
@keyframes dustA{0%,100%{opacity:.5;transform:translate3d(0,0,0)}50%{opacity:.85;transform:translate3d(0,-14px,0)}}
@keyframes dustB{0%,100%{opacity:.85;transform:translate3d(0,0,0)}50%{opacity:.45;transform:translate3d(0,12px,0)}}

/* Координатная сетка во весь экран: мелкая клетка и жирная через
   каждые пять клеток, как на приборе. */
.scope{
  position:absolute;inset:0;display:none;
  background-image:
    repeating-linear-gradient(to right,color-mix(in srgb, var(--acc) 13%, transparent) 0 1px,transparent 1px 40px),
    repeating-linear-gradient(to bottom,color-mix(in srgb, var(--acc) 13%, transparent) 0 1px,transparent 1px 40px),
    repeating-linear-gradient(to right,color-mix(in srgb, var(--acc) 22%, transparent) 0 1px,transparent 1px 200px),
    repeating-linear-gradient(to bottom,color-mix(in srgb, var(--acc) 22%, transparent) 0 1px,transparent 1px 200px);
  mask-image:radial-gradient(120% 90% at 50% 40%,#000 30%,transparent 88%);
  -webkit-mask-image:radial-gradient(120% 90% at 50% 40%,#000 30%,transparent 88%);
  opacity:.55;
}
/* Луч: узкая светящаяся полоса идёт слева направо и тянет за собой
   мягкий след. */
.sweep{
  position:absolute;top:0;bottom:0;left:0;width:34vw;display:none;
  background:linear-gradient(90deg,transparent,color-mix(in srgb, var(--acc) 9%, transparent) 74%,color-mix(in srgb, var(--acc) 34%, transparent) 99%,transparent);
  animation:sweep 11s linear infinite;
}
@keyframes sweep{0%{transform:translateX(-36vw)}100%{transform:translateX(136vw)}}

/* Сетка в перспективе: пол уходит к горизонту. Слой для «Вольта». */
.floor{
  inset:auto -60% 0 -60%;height:86vh;overflow:visible;
  background-image:
    repeating-linear-gradient(to right,color-mix(in srgb, var(--acc) 34%, transparent) 0 1px,transparent 1px 76px),
    repeating-linear-gradient(to bottom,color-mix(in srgb, var(--acc) 34%, transparent) 0 1px,transparent 1px 76px);
  background-position:0 0,0 0;
  transform:perspective(520px) rotateX(70deg);
  transform-origin:50% 100%;
  /* ★ 13.09.2026: пол тише и гаснет задолго до горизонта. Прежде его край и
     яркая линия горизонта читались полосой поперёк карточек (жалоба хозяина). */
  mask-image:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.25) 35%,transparent 70%);
  -webkit-mask-image:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.25) 35%,transparent 70%);
  opacity:.6;
}
/* линия горизонта, от неё сетка и убегает */
/* линия горизонта снята 13.09.2026: на полупрозрачных карточках она резала страницу поперёк */
.floor::before{display:none}
@keyframes gridrun{to{background-position:0 76px,0 76px}}

/* панелька выбора */
.ldock{
  position:fixed;right:20px;bottom:20px;z-index:60;width:288px;
  border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb, var(--panel2) 96%, transparent);
  box-shadow:0 30px 60px -30px #000;padding:14px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
}
.ld-h{font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-bottom:11px}
.ld-list{display:grid;gap:7px;max-height:min(58vh,470px);max-height:min(58dvh,470px);overflow-y:auto;overflow-x:hidden;padding-right:4px}
.ld-list button{
  overflow:hidden;display:flex;align-items:center;gap:11px;width:100%;text-align:left;cursor:pointer;
  border:1px solid var(--line2);background:rgba(255,255,255,.03);border-radius:11px;padding:9px 11px;
  color:var(--muted);font:inherit;font-size:14.5px;transition:.14s;
}
.ld-list button:hover{color:#fff;border-color:var(--line)}
.ld-list button[aria-pressed="true"]{border-color:var(--violet);background:color-mix(in srgb, var(--acc) 16%, transparent);color:var(--text)}
.ld-list b{
  flex:none;width:54px;height:38px;border-radius:7px;display:block;position:relative;overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
}
/* верхняя полоска это шапка, ниже карточка и акцентная черта */
.ld-list b i{position:absolute;display:block}
.ld-list b i.head{left:0;right:0;top:0;height:8px}
.ld-list b i.card{left:5px;right:5px;top:13px;height:12px;border-radius:2px}
.ld-list b i.acc{left:5px;width:22px;top:28px;height:4px;border-radius:2px}
.ld-list b i.acc2{right:5px;width:12px;top:28px;height:4px;border-radius:2px;opacity:.55}
.ld-list span{display:block;min-width:0;overflow:hidden}
.ld-list em{
  display:block;font-style:normal;font-size:12.5px;color:var(--dim);margin-top:1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ld-x{
  margin-top:11px;width:100%;border:0;border-radius:10px;padding:9px;cursor:pointer;
  background:color-mix(in srgb, var(--acc) 22%, transparent);color:#fff;font:inherit;font-size:14.5px;
}
.ld-x:hover{background:color-mix(in srgb, var(--acc) 34%, transparent)}
@media (max-width:600px){.ldock{left:16px;right:16px;width:auto}}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);position:relative;z-index:2}
a{color:var(--violet-hi)}
:focus-visible{outline:2px solid var(--violet);outline-offset:2px;border-radius:6px}

/* ── шапка ───────────────────────────────────────────────── */
.hact{display:flex;align-items:center;gap:6px;flex:none;margin-left:auto}
.hact .grp{display:flex;align-items:center;gap:2px}
.ibtn.dsc{text-decoration:none;color:#5865F2}
.ibtn.dsc svg{display:block}
.ibtn.dsc:hover{color:#fff;background:#5865F2}
.logo{display:flex;align-items:center;gap:13px;text-decoration:none;color:inherit;flex:none}
/* ── страница бота ── */
.bot-lead{margin:0 0 30px;max-width:78ch}
.bot-lead .bot-cta{margin-top:4px}
.bot-lead p{margin:0 0 14px;color:var(--text-2);font-size:15.5px;line-height:1.62}
.bot-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:46px;padding:0 24px;line-height:1;border-radius:99px;cursor:pointer;
  border:1px solid color-mix(in srgb, var(--acc) 55%, transparent);
  background:color-mix(in srgb, var(--acc) 18%, transparent);
  color:var(--text);font:inherit;font-size:14.5px;font-weight:600;text-decoration:none;transition:.16s;
}
.bot-cta:hover{background:color-mix(in srgb, var(--acc) 30%, transparent);border-color:var(--acc)}
.bot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:12px;margin:10px 0 26px}
.bot-card{
  background:var(--panel);background-image:var(--card-fill);border:1px solid var(--line);
  border-radius:var(--r);padding:16px 18px;
}
.bot-card .bi{font-size:20px;margin-bottom:8px}
.bot-card h4{margin:0 0 6px;font-size:14.5px;font-weight:700;color:var(--text)}
.bot-card p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.6}
.bot-steps{margin:0 0 22px;padding:0;list-style:none;counter-reset:bs;display:grid;gap:10px;max-width:78ch}
.bot-steps li{position:relative;padding-left:36px;counter-increment:bs;color:var(--text-2)}
.bot-steps li:before{
  content:counter(bs);position:absolute;left:0;top:-1px;width:25px;height:25px;border-radius:99px;
  display:grid;place-items:center;font-family:var(--mono);font-size:12.5px;font-weight:700;
  background:color-mix(in srgb, var(--acc) 16%, transparent);color:var(--acc-hi);
  border:1px solid color-mix(in srgb, var(--acc) 38%, transparent);
}
.bot-teaser{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:26px 0 0;padding:16px 20px;
  background:var(--panel);background-image:var(--card-fill);border:1px solid var(--line);border-radius:var(--r);
}
.bot-teaser>div{flex:1;min-width:220px}
.bot-teaser b{display:block;font-size:14.5px;color:var(--text);margin-bottom:3px}
.bot-teaser span{display:block;color:var(--muted);font-size:13.5px}

.logo-mark{
  width:46px;height:46px;display:block;flex:none;transition:filter .16s;
  filter:hue-rotate(var(--logo-rot,0deg)) saturate(var(--logo-sat,1));
}
.wordmark{display:flex;flex-direction:column;line-height:1.15}
.wordmark b{font-family:var(--mono);font-size:16px;font-weight:700;letter-spacing:.16em;color:var(--text)}
.wordmark span{
  display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;
  color:var(--dim);text-transform:uppercase;
}
@media (max-width:700px){.logo-mark{width:38px;height:38px}.wordmark span{display:none}}
.logo:hover .logo-mark{filter:hue-rotate(var(--logo-rot,0deg)) saturate(var(--logo-sat,1)) brightness(1.14)}

.logo-img{position:relative;width:44px;height:44px;flex:none}
.logo-img img{width:44px;height:44px;display:block;position:relative;z-index:1}
.wordmark{display:flex;flex-direction:column;line-height:1.05}
.wordmark b{font-family:var(--mono);font-size:17px;font-weight:700;letter-spacing:.05em;color:var(--text)}
.wordmark span{display:none}
.live{
  display:flex;align-items:center;gap:8px;white-space:nowrap;
  font-family:var(--mono);font-size:13.5px;color:var(--dim);padding-right:4px;
}

.ibtn{
  flex:none;width:32px;height:32px;border-radius:50%;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  padding:0;line-height:1;box-sizing:border-box;
  background:transparent;border:0;color:var(--muted);
  font-family:var(--mono);font-size:15px;font-weight:700;transition:.15s;
}
.ibtn:hover{color:var(--text);background:color-mix(in srgb, var(--acc) 20%, transparent)}
.rules{display:grid;gap:14px}
.rule2{
  border:1px solid var(--line2);border-radius:12px;padding:14px 16px;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01));
}
.rule2 b{display:block;font-size:16.5px;margin-bottom:6px}
.rule2 p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.55}
.lvls{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.lvl2{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:14.5px;color:var(--muted)}
.lvl2 i{width:11px;height:11px;border-radius:3px;display:inline-block}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 8px color-mix(in srgb, var(--pos) 60%, transparent);animation:pl 2.6s infinite}
@keyframes pl{0%,100%{opacity:1}50%{opacity:.35}}

/* ── ВИДЫ ШАПКИ ──────────────────────────────────────────── */
.hfind{display:none!important;position:relative;flex:0 1 300px;min-width:0}
.hfind input{
  width:100%;font-family:var(--sans);font-size:14px;color:var(--text);
  background:rgba(255,255,255,.05);border:1px solid var(--line2);border-radius:999px;
  padding:9px 15px;outline:none;transition:.15s;
}
.hfind input:focus{border-color:var(--acc);background:rgba(255,255,255,.08)}
.hfind .sug{left:0;right:0;top:46px}


/* ── заголовок вида ──────────────────────────────────────── */
.vhead{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:8px 0 18px}
.vhead h1{
  margin:0;font-size:clamp(23px,3.4vw,38px);font-weight:750;letter-spacing:-.03em;line-height:1.05;
  background:linear-gradient(96deg,var(--text) 20%,var(--violet-hi) 70%,var(--magenta));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.vhead p{margin:0;color:var(--muted);font-size:16px;max-width:62ch}
/* ── вводный текст главной (14.09.2026): только на главной, в разметке ── */
.home-intro{margin:2px 0 14px;max-width:88ch}
.home-intro[hidden]{display:none}
.home-intro p{margin:0;font-size:15px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere;text-wrap:pretty}
.home-intro b{color:var(--text);font-weight:650}
.home-intro a{color:var(--text-2);text-decoration:underline;text-decoration-color:var(--line2);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}
.home-intro a:hover{color:var(--text);text-decoration-color:currentColor}
.home-intro a:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:3px}
@media (max-width:700px){.home-intro{margin:10px 0 4px}.home-intro p{font-size:14.5px;line-height:1.55}}

/* ── панель фильтров ─────────────────────────────────────── */
.bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:20px 0 16px}
.sel,.inp{
  font-family:var(--mono);font-size:14.5px;line-height:1.25;color:var(--text);
  background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:11px 14px;
  transition:border-color .16s,box-shadow .16s;
}
.selwrap{position:relative;display:inline-flex;vertical-align:middle}
.selwrap::after{
  content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;margin-top:-5px;
  border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);
  transform:rotate(45deg);pointer-events:none;
}
.selwrap:hover::after{border-color:var(--text)}
.sel{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  padding-right:36px;cursor:pointer;width:100%;
}
.sel::-ms-expand{display:none}
.inp{min-width:min(280px,62vw)}
.sel:hover,.inp:hover{border-color:var(--line)}
.inp:focus,.sel:focus{border-color:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb, var(--acc) 18%, transparent);outline:none}
.count{font-family:var(--mono);font-size:14.5px;color:var(--muted);margin-left:auto;white-space:nowrap}

/* ── таблицы ─────────────────────────────────────────────── */
#view{padding-top:0}
.bar.hidden + #view{padding-top:22px}
.tbl-wrap{
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  background:var(--panel);
  box-shadow:0 30px 60px -40px #000;
}
.tbl-scroll{overflow-x:auto}
table{border-collapse:separate;border-spacing:0;width:100%;min-width:700px}
th,td{padding:12px 15px;text-align:left;white-space:nowrap}
th{
  position:sticky;top:0;z-index:3;
  background:var(--panel2);
  font-family:var(--mono);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--dim);font-weight:700;border-bottom:1px solid var(--line);cursor:pointer;user-select:none;
  transition:color .15s;
}
th:hover{color:var(--text)}
th.sorted{color:var(--violet-hi)}
th .arw{font-size:13px;margin-left:4px;opacity:.9}
td{border-bottom:1px solid rgba(255,255,255,.07);font-size:14.5px;color:var(--text)}
tbody tr{transition:background .14s}
tbody tr:nth-child(even){background:rgba(255,255,255,.028)}
tbody tr:hover td{background:rgba(255,255,255,.075)}
tbody tr:last-child td{border-bottom:0}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;min-width:92px}
.rank{font-family:var(--mono);width:58px;text-align:right;color:var(--dim);font-size:13.5px}
.rank b{
  display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;
  font-size:13.5px;font-weight:700;color:var(--ink);
}
.r1 b{background:var(--gold);color:var(--ink)}
.r2 b{background:var(--silver);color:var(--ink)}
.r3 b{background:var(--bronze);color:var(--ink)}

/* имя с цветным значком первой буквы */
.who{display:flex;align-items:center;gap:10px;min-width:0}
/* Уровень силы показывает узкая цветная полоса слева от имени: она читается
   с одного взгляда и не спорит с текстом, в отличие от ярких кружков. */
.tier{width:4px;height:22px;border-radius:3px;flex:none}
.legend{display:flex;flex-wrap:wrap;gap:18px;padding:0 0 16px;font-family:var(--mono);font-size:14.5px;color:var(--muted)}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:7px;vertical-align:-1px}
.who span{font-weight:600;font-size:16px;overflow:hidden;text-overflow:ellipsis}

/* значок сервера */
.chip{
  display:inline-block;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;
  font-family:var(--mono);font-size:13.5px;font-weight:600;letter-spacing:.04em;color:var(--muted);
  border:1px solid var(--line);background:rgba(255,255,255,.05);
  border-radius:var(--chip-r,6px);padding:3px 9px;
}
/* ── иконка сервера у названия (14.09.2026) ── */
.chip.srvc{display:inline-flex;align-items:center;gap:6px;max-width:190px}
.chip.srvc img{flex:none;width:14px;height:14px}
.chip.srvc .srvc-t{min-width:0;overflow:hidden;text-overflow:ellipsis}
.scard .nm.srvc-nm{display:flex;align-items:center;gap:9px;min-width:0}
.scard .nm.srvc-nm img{flex:none;width:20px;height:20px}
.who img.srvc-i{flex:none;width:18px;height:18px}
.srvc-td{display:inline-flex;align-items:center;gap:8px}
.srvc-td img{flex:none;width:16px;height:16px}
/* полоса под числом PTS */
.barcell{position:relative;text-align:right;min-width:112px;font-family:var(--mono);font-weight:600;color:#fff;font-variant-numeric:tabular-nums}
.barcell i{
  position:absolute;left:8px;right:8px;bottom:6px;height:3px;border-radius:2px;
  background:rgba(255,255,255,.06);overflow:hidden;display:block;
}
.barcell i em{display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,color-mix(in srgb, var(--acc) 55%, transparent),var(--violet-hi))}
.stbl td.r .pts-pill{margin-left:auto}
.stbl td.r{white-space:nowrap}
.pts-pill{
  font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;color:var(--violet-hi);
  background:color-mix(in srgb, var(--acc) 16%, transparent);border:1px solid color-mix(in srgb, var(--acc) 34%, transparent);
  border-radius:7px;padding:3px 9px;font-size:13.5px;
}
.wr{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;font-weight:600;min-width:104px}
/* Перевес атаки над защитой: слева фиолетовое, справа голубое. Видно с одного
   взгляда, чья это карта, без сравнения двух чисел в уме. */
.adcell{display:flex;align-items:center;gap:11px;min-width:236px}
.adcell b{font-family:var(--mono);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;width:46px}
.adcell b.a{text-align:left;color:var(--win)}
.adcell b.d{text-align:left;color:var(--lose)}
.adcell{white-space:nowrap}
.adcell .split{flex:1}
.split{
  position:relative;height:10px;border-radius:6px;overflow:hidden;
  background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);
}
.split span{position:absolute;top:0;bottom:0;display:block;border-radius:6px}
.split span.atk{left:0;background:var(--win)}
.split span.def{right:0;background:var(--lose)}


/* ── страницы ────────────────────────────────────────────── */
.pager{display:flex;gap:10px;align-items:center;justify-content:center;padding:18px 0 6px}
.pg{
  font-family:var(--mono);font-size:13.5px;color:var(--muted);background:color-mix(in srgb, var(--panel) 88%, transparent);
  border:1px solid var(--line);border-radius:10px;padding:9px 15px;cursor:pointer;transition:.15s;
}
.pg:hover:not(:disabled){color:var(--text);border-color:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb, var(--acc) 15%, transparent)}
.pg:disabled{opacity:.32;cursor:default}
.pg-num{font-family:var(--mono);font-size:13.5px;color:var(--dim)}

.side-pill{
  font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;border-radius:6px;padding:3px 9px;
  border:1px solid;white-space:nowrap;
}
.side-pill.atk{color:var(--violet-hi);border-color:color-mix(in srgb, var(--acc) 35%, transparent);background:color-mix(in srgb, var(--acc) 13%, transparent)}
.side-pill.def{color:var(--cyan);border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.07)}

/* Пометка «не в зачёт»: бой показывается наравне со всеми, но в статистику не
   идёт. Нарочно приглушённая и без своего цвета: это не ошибка и не тревога,
   а свойство боя. Все цвета переменные, поэтому пометка живёт во всех темах. */
/* nc-dash 19.09.2026 (слово гостя, в карточке боя: «закругления
   противоположно от этих кружков»): пунктирная рамка у скруглённого угла
   ложится неровно (штрихи по дуге не совпадают в браузерах один в один), и
   на просвет было видно фон под меткой. Рамка стала сплошной: тот же цвет,
   тот же вид, просто без пунктира на кривой. */
.nc{
  font-family:var(--mono);font-size:12px;letter-spacing:.04em;white-space:nowrap;
  border-radius:6px;padding:2px 7px;flex:none;
  border:1px solid var(--line);color:var(--dim);
  background:color-mix(in srgb, var(--muted) 10%, transparent);
}
/* Отступ только когда пометка стоит ПОСЛЕ чего-то: в столбце «взяли» она
   бывает единственной, и висячий отступ сдвигал бы её от края. */
.nc:not(:first-child){margin-left:8px}
/* Пометка теперь стоит ПЕРЕД исходом, поэтому отступ ей нужен справа. */
.nc:first-child{margin-right:8px}
/* Карточка списка в одну строку (14.09.2026, слово гостя): формат ВЗП
   (дата, семьи, формат/карта/сервер справа, метка «не в зачёт» последней),
   те же классы у «Трансферов» (дата, игрок, из фамы в фаму через стрелку,
   сервер справа) — после нескольких заходов с двумя строками вернулись к
   одной, как и было задумано изначально. Раньше в обоих разделах были
   таблицы со столбцами. */
.wlist{display:flex;flex-direction:column;gap:6px}
.wcard{display:flex;align-items:baseline;flex-wrap:wrap;gap:9px;padding:9px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--card-fill)}
.wcard.clickable{cursor:pointer}
/* Подсветка при наведении у ЛЮБОЙ строки (14.09.2026, слово гостя): в
   трансферах не у каждой строки есть игрок в рейтинге (нет курсора-руки),
   но строка со ссылками на семьи внутри — тоже строка списка, и должна
   отзываться на наведение так же, как в ВЗП. Курсор-рука остаётся только
   у по-настоящему кликабельных (.clickable). */
.wcard:hover{border-color:var(--line2)}
.wcard.clickable:focus-visible{border-color:var(--line2)}
.wc-date{font-family:var(--mono);font-size:12px;color:var(--muted);flex:none;margin-right:9px}
/* Карточка идущего боя (18.09.2026, слово гостя). Только переменные темы. */
.wc-date.live-now{color:var(--amber);font-weight:700;animation:terr-live-pulse 1.8s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.wc-date.live-now{animation:none}}
.wc-teams{display:flex;align-items:baseline;gap:7px;min-width:0;font-weight:700;font-size:14.5px}
.wc-teams span:not(.wc-vs){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:32vw}
/* Ширина игрока фиксированная, а не по содержимому (14.09.2026, слово
   гостя): иначе короткие ники сдвигают переход «из фамы в фаму» левее, и
   колонка перехода гуляет от строки к строке вместо ровного столбца. */
.wc-player{font-weight:700;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none;width:170px}
.wc-vs{font-weight:400;font-size:12px;color:var(--dim);flex:none}
.wc-move{display:flex;align-items:baseline;gap:7px;min-width:0;font-weight:700;font-size:14.5px}
.wc-move span:not(.wc-vs){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:32vw}
.wc-meta{display:flex;align-items:baseline;gap:12px;flex:none;margin-left:auto}
.wc-fmt{font-family:var(--mono);font-size:12px;color:var(--muted);flex:none}
.wc-map{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:28vw}
.wc-srv .chip{font-size:12px}
@media (max-width:560px){
  .wc-teams span:not(.wc-vs),.wc-move span:not(.wc-vs){max-width:26vw}
  .wc-player{width:34vw}
}
/* ── duel 14.09.2026: карточка боя «дуэль» в разделе ВЗП (Screenshot_5) ──
   Крайние ячейки 1fr и 1fr, счёт посередине: он ровно по центру строки.
   Подсветка половин из --pos/--neg поверх обычной подложки; у незачётных
   боёв слабее. Цвета только из переменных темы. */
.wlist-duel{gap:5px}
.wcard.wduel{
  display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:16px;
  padding:9px 16px;min-height:48px;
}
.wduel.w-a{--wd-lc:var(--pos);--wd-rc:var(--neg)}
.wduel.w-d{--wd-lc:var(--neg);--wd-rc:var(--pos)}
.wduel.w-a,.wduel.w-d{
  --wd-a:17%;--wd-b:5%;
  background-image:linear-gradient(90deg,
    color-mix(in srgb, var(--wd-lc) var(--wd-a), transparent) 0%,
    color-mix(in srgb, var(--wd-lc) var(--wd-b), transparent) 36%,
    transparent 50%,
    color-mix(in srgb, var(--wd-rc) var(--wd-b), transparent) 64%,
    color-mix(in srgb, var(--wd-rc) var(--wd-a), transparent) 100%), var(--card-fill);
}
.wduel.is-nc{--wd-a:8%;--wd-b:2%}
.wd-cell{display:flex;align-items:center;gap:14px;min-width:0}
/* duel2 14.09.2026: дата и пометка незачётного боя одной группой слева. */
.wd-when{display:flex;align-items:center;gap:10px;flex:none}
.wd-when .wc-date{margin-right:0}
.wd-left .wd-name{margin-left:auto;text-align:right}
.wd-right .wc-meta{margin-left:auto;min-width:0}
.wd-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:15px;color:var(--text)}
.wduel.w-a .wd-right .wd-name,.wduel.w-d .wd-left .wd-name{color:var(--muted);font-weight:600}
.wd-score{
  display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:9px;
  border:1px solid var(--line);background:var(--ink);font-family:var(--mono);font-size:13px;font-weight:700;line-height:1;
}
.wd-score b{min-width:.7em;text-align:center;color:var(--dim)}
.wd-score i{font-style:normal;color:var(--dim)}
.wd-score .wd-w{color:var(--pos)}
.wd-score .wd-l{color:var(--neg)}
.wduel .wc-meta{gap:10px}
.wduel .wc-map{max-width:14vw}
@media (max-width:900px){
  .wduel .wc-map{display:none}
}
/* Телефон: две ровные строки. Сверху дата слева и формат/сервер справа, снизу
   атака, счёт, защита; ячейки растворяются (display:contents), места задаёт сетка. */
@media (max-width:640px){
  .wcard.wduel{
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    grid-template-areas:"date meta meta" "atk score def";
    column-gap:10px;row-gap:7px;padding:8px 11px;min-height:0;
  }
  .wd-cell{display:contents}
  .wduel .wd-when{grid-area:date;align-self:center;gap:8px}
  .wduel .wc-date{margin:0;font-size:11.5px}
  .wd-left .wd-name{grid-area:atk;margin:0;justify-self:end;max-width:100%}
  .wduel .wd-score{grid-area:score}
  .wd-right .wd-name{grid-area:def;justify-self:start;max-width:100%}
  .wd-right .wc-meta{grid-area:meta;margin:0;justify-self:end;justify-content:flex-end;flex-wrap:wrap;row-gap:4px;gap:8px}
  .wd-name{font-size:14px}
  .wduel .wc-fmt{font-size:11.5px}
  .wduel .nc{font-size:10.5px}
}
/* ── duelall 14.09.2026: «дуэль» во всех списках боёв ──
   Своя сторона в списке игрока или семьи: тонкая черта акцента со стороны
   счёта (у всех строк на одном месте, строка под именем разной длины её не
   двигает), под именем мелкая строка (урон и фраги игрока, состав семьи).
   Справа за картой добавки (урон боя, людей). Цвета только из переменных темы. */
.wd-side{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0;max-width:100%}
.wd-side .wd-name{max-width:100%}
.wd-left .wd-side{margin-left:auto;align-items:flex-end;text-align:right}
.wd-right .wd-side{align-items:flex-start}
.wd-left .wd-own{padding-right:10px;border-right:2px solid color-mix(in srgb, var(--acc) 80%, transparent)}
.wd-right .wd-own{padding-left:10px;border-left:2px solid color-mix(in srgb, var(--acc) 80%, transparent)}
.wd-sub{display:flex;align-items:baseline;gap:6px;max-width:100%;overflow:hidden;white-space:nowrap;font-family:var(--mono);font-size:11.5px;line-height:1.2;color:var(--muted)}
.wd-sub i{font-style:normal;color:var(--dim)}
.wd-sub b,.wc-x b{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.wc-x{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap;flex:none}
.wduel.own-a,.wduel.own-d{padding-block:7px}
@media (max-width:640px){
  .wd-left .wd-side{grid-area:atk;margin:0;justify-self:end}
  .wd-right .wd-side{grid-area:def;justify-self:start}
  .wd-sub{font-size:11px;flex-wrap:wrap;column-gap:8px;row-gap:2px}
  .wd-left .wd-sub{justify-content:flex-end}
  .wd-sub i{display:none}
  .wduel .wc-x{font-size:11.5px}
}
/* ── trcard 15.09.2026: карточка перехода по центру (Трансферы) ──
   Сетка как у .wduel, но середина фиксированной ширины под ник: семьи
   стоят ровными столбцами. Слабый акцент темы на стороне «куда пришёл». */
.wcard.wtr{
  display:grid;grid-template-columns:minmax(0,1fr) 240px minmax(0,1fr);align-items:center;column-gap:14px;
  padding:9px 16px;min-height:48px;
  background-image:linear-gradient(90deg, transparent 52%, color-mix(in srgb, var(--acc) 4%, transparent) 70%, color-mix(in srgb, var(--acc) 10%, transparent) 100%), var(--card-fill);
}
.wtr .wd-left{gap:10px}
.wtr .wd-right{gap:10px}
.wtr .wt-from{color:var(--muted);font-weight:600}
.wtr .wt-to{color:var(--text)}
.wt-arr{flex:none;color:var(--dim);font-size:13px;line-height:1}
.wt-mid{display:flex;justify-content:center;min-width:0}
.wt-player{
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:4px 12px;border-radius:9px;border:1px solid var(--line);background:var(--ink);
  color:var(--text);font-weight:700;font-size:14px;line-height:1.25;
}
@media (max-width:900px){ .wcard.wtr{grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr)} }
@media (max-width:640px){
  .wcard.wtr{
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    grid-template-areas:"date date meta" "atk mid def";
    column-gap:8px;row-gap:7px;padding:8px 11px;min-height:0;
  }
  .wtr .wd-when{grid-area:date;align-self:center}
  .wtr .wc-date{margin:0;font-size:11.5px}
  .wtr .wt-mid{grid-area:mid}
  .wtr .wt-arr{display:none}
  .wt-player{padding:3px 9px;font-size:13px;max-width:36vw}
  .wtr .wd-name{font-size:13.5px}
}
/* bcount 15.09.2026: число боёв в заголовке вкладки «Все бои · N». */
.h4-count{margin-left:.55em;color:var(--muted);font-variant-numeric:tabular-nums}
.h4-count::before{content:"·";margin-right:.55em;color:var(--dim)}
/* «Все сервера» это не сервер, а весь свет сразу: выделяем начертанием. */
.opt-all{font-weight:800}
.sel optgroup{font-style:normal;color:var(--muted);font-weight:700}
.sel option{font-weight:400}
/* ── выбор сервера (14.09.2026) ────────────────────────────────
   Настоящий <select> остаётся на месте и хранит значение (его читает код),
   но скрыт. Поверх кнопка и всплывающая панель карточек: иконка, название,
   онлайн с тонкой полоской. Архив отдельной приглушённой группой. Цвета
   только из переменных темы. Префикс srvp. */
.srvp-wrap{position:relative;display:inline-flex;vertical-align:middle;min-width:0}
.selwrap.srvp-has::after{display:none}
select.srvp-native{
  position:absolute!important;left:0!important;bottom:0!important;width:1px!important;height:1px!important;min-width:0!important;
  margin:0!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important;
  overflow:hidden!important;clip-path:inset(50%)!important;
}
/* Ширину задаёт обёртка, кнопка её заполняет: в фильтре 272 px (на телефоне
   на всю строку), в форме на всю колонку, чужие места со своей шириной тоже. */
.bar>.selwrap.srvp-has{width:272px;max-width:100%}
@media (max-width:700px){.bar>.selwrap.srvp-has{width:100%}}
.srvp-btn{
  display:flex;align-items:center;gap:10px;width:100%;max-width:100%;min-height:42px;margin:0;padding:0 12px;
  font-family:var(--mono);font-size:14.5px;line-height:1.25;color:var(--text);text-align:left;cursor:pointer;
  background:var(--panel2);border:1px solid var(--line);border-radius:10px;
  transition:border-color .16s,box-shadow .16s;-webkit-tap-highlight-color:transparent;
}
.srvp-btn:hover{border-color:color-mix(in srgb, var(--acc) 35%, var(--line))}
.srvp-btn:focus{outline:none}
.srvp-btn:focus-visible,.srvp-btn[aria-expanded="true"]{border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb, var(--acc) 22%, transparent)}
.srvp-ico{flex:none;display:inline-grid;place-items:center;width:20px;height:20px;color:var(--text-2)}
.srvp-ico:empty{display:none}
.srvp-ico img{display:block;width:20px;height:20px}
.srvp-ico svg{display:block;width:18px;height:18px}
.srvp-let{
  display:grid;place-items:center;width:20px;height:20px;border-radius:6px;
  font-family:var(--mono);font-size:11px;font-weight:700;line-height:1;color:var(--muted);
  background:color-mix(in srgb, var(--text) 7%, transparent);box-shadow:inset 0 0 0 1px var(--line);
}
.srvp-bn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}
.srvp-bo{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.srvp-bo:empty{display:none}
.srvp-bo::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--pos)}
.srvp-chev{flex:none;display:block;width:16px;height:16px;color:var(--muted);transition:transform .16s}
.srvp-btn:hover .srvp-chev{color:var(--text)}
.srvp-btn[aria-expanded="true"] .srvp-chev{transform:rotate(180deg)}
.srvp-form{display:flex;width:100%}
.srvp-form .srvp-btn{width:100%;min-height:46px;font-family:inherit;font-size:15px;background:color-mix(in srgb, var(--text) 4%, transparent)}

.srvp-pop{
  position:fixed;left:0;top:0;z-index:95;display:none;box-sizing:border-box;
  width:min(1010px, calc(100vw - 24px));max-height:70vh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
  padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow),0 0 0 1px color-mix(in srgb, var(--ink) 60%, transparent);
  font-family:var(--sans);color:var(--text);
}
.srvp-pop.on{display:block;animation:srvp-in .12s ease-out}
@keyframes srvp-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.srvp-pop.on{animation:none}.srvp-chev{transition:none}}
.srvp-pop.srvp-sm{width:min(660px, calc(100vw - 24px))}
.srvp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.srvp-gh{
  display:flex;align-items:center;gap:10px;margin:14px 4px 8px;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
}
.srvp-gh::after{content:"";flex:1;height:1px;background:var(--line)}
.srvp-opt{
  display:flex;align-items:flex-start;gap:10px;min-width:0;min-height:60px;padding:9px 10px;box-sizing:border-box;
  border:1px solid transparent;border-radius:10px;cursor:pointer;color:var(--text);
  background:color-mix(in srgb, var(--text) 3%, transparent);
  transition:background-color .12s,border-color .12s;-webkit-tap-highlight-color:transparent;user-select:none;
}
.srvp-opt:hover{background:color-mix(in srgb, var(--text) 7%, transparent);border-color:var(--line)}
.srvp-opt[aria-selected="true"]{background:color-mix(in srgb, var(--acc) 13%, transparent);border-color:color-mix(in srgb, var(--acc) 60%, transparent)}
.srvp-opt:focus{outline:none}
.srvp-opt:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.srvp-opt .srvp-ico{margin-top:0}
.srvp-ot{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.srvp-nm{font-size:14px;font-weight:600;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srvp-num{font-family:var(--mono);font-size:12px;line-height:1.2;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srvp-num b{font-weight:600;color:var(--text-2)}
.srvp-opt[aria-selected="true"] .srvp-num{color:var(--text-2)}
.srvp-opt[aria-selected="true"] .srvp-num b{color:var(--text)}
.srvp-bar{display:block;height:3px;border-radius:2px;overflow:hidden;background:color-mix(in srgb, var(--text) 11%, transparent)}
.srvp-bar i{display:block;height:100%;width:0;border-radius:2px;background:var(--acc)}
.srvp-num:empty,.srvp-num:empty + .srvp-bar{display:none}
.srvp-nodata .srvp-opt,.srvp-sm .srvp-opt,.srvp-arch .srvp-opt{align-items:center;min-height:46px}
.srvp-arch .srvp-opt{background:transparent;border:1px dashed var(--line)}
.srvp-arch .srvp-opt:hover{background:color-mix(in srgb, var(--text) 5%, transparent)}
.srvp-arch .srvp-opt[aria-selected="true"]{border-style:solid;background:color-mix(in srgb, var(--acc) 13%, transparent)}
.srvp-arch .srvp-nm{font-weight:500;color:var(--muted)}
.srvp-arch .srvp-opt[aria-selected="true"] .srvp-nm{color:var(--text)}
.srvp-arch .srvp-ico img{opacity:.7}
@media (max-width:700px){
  .bar>.selwrap.srvp-has .srvp-btn{width:100%}
}
@media (max-width:599.98px){
  .srvp-pop,.srvp-pop.srvp-sm{width:calc(100vw - 16px);padding:8px;border-radius:12px}
  .srvp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .srvp-opt{min-height:62px;padding:10px}
  .srvp-nodata .srvp-opt,.srvp-sm .srvp-opt,.srvp-arch .srvp-opt{min-height:50px}
}
@media (pointer:coarse){
  .srvp-btn{min-height:44px}
  .srvp-nodata .srvp-opt,.srvp-sm .srvp-opt,.srvp-arch .srvp-opt{min-height:50px}
}

/* ── онлайн серверов: раздел «Сервера» и страница сервера (srvonline 14.09.2026) ──
   Цвета только из переменных темы. Полный сервер отмечен --neg (мест нет),
   стоящий приглушён, без свежих данных ячейка пустая. */
.srvon-sum{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0 0 14px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r);background:color-mix(in srgb, var(--panel) 82%, transparent)}
.srvon-main{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--text-2);white-space:nowrap}
.srvon-main b{font-family:var(--mono);font-size:20px;font-weight:700;line-height:1;color:var(--text);font-variant-numeric:tabular-nums}
.srvon-sub{font-family:var(--mono);font-size:13px;color:var(--muted);min-width:0}
.srvon-sub span{white-space:nowrap}
.srvon-dot{flex:none;display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--pos);box-shadow:0 0 0 3px color-mix(in srgb, var(--pos) 22%, transparent)}
td.srvon-td{text-align:right}
.srvon{display:inline-flex;flex-direction:column;gap:6px;width:176px;vertical-align:middle;text-align:left}
.srvon-l{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:13.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.srvon-n b{font-weight:700;color:var(--text)}
.srvon-p,.srvon-tp{font-size:12px;color:var(--muted)}
.srvon-bar,.srvon-mini{display:block;height:4px;border-radius:2px;overflow:hidden;background:color-mix(in srgb, var(--text) 11%, transparent)}
.srvon-bar i,.srvon-mini i{display:block;height:100%;width:0;border-radius:2px;background:var(--acc);transition:width .4s ease}
.srvon-td.is-full .srvon-bar i,.srvon-tag.is-full .srvon-mini i{background:var(--neg)}
.srvon-td.is-full .srvon-p,.srvon-tag.is-full .srvon-tp{color:var(--neg);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.srvon-td.is-off .srvon-n{color:var(--muted)}
.srvon-td.is-none .srvon-n{color:var(--dim)}
.srvon-td.is-off .srvon-bar,.srvon-td.is-none .srvon-bar{visibility:hidden}
.ent-tag.srvon-tag{gap:8px}
.srvon-tag .srvon-tn b{font-weight:700;color:var(--text)}
.srvon-mini{flex:none;width:46px}
.srvon-tag.is-off{border-style:dashed;color:var(--muted)}
.srvon-tag.is-off .srvon-dot{background:var(--dim);box-shadow:none}
@media (prefers-reduced-motion:reduce){.srvon-bar i,.srvon-mini i{transition:none}}
@media (max-width:480px){
  .srvon-sum{padding:10px 12px;gap:4px 12px}
  .srvon-main b{font-size:18px}
  .srvon{width:164px}
}
.mextra{
  font:inherit;font-size:13px;color:var(--text-2);background:transparent;cursor:pointer;
  border:1px solid var(--line);border-radius:10px;padding:7px 13px;white-space:nowrap;
}
.mextra:hover{color:var(--text);border-color:var(--muted)}
.ptrow{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}
.ptrow:last-child{border-bottom:0}
.ptrow b{font-variant-numeric:tabular-nums}
.ptrow.clickable{cursor:pointer}
.ptrow.clickable:hover{background:color-mix(in srgb, var(--muted) 8%, transparent)}
.mstats .v{white-space:nowrap}
.arch-wrap{margin:18px 0 6px;display:flex;flex-direction:column;align-items:center;gap:6px}
.arch-btn{
  font:inherit;font-size:13px;color:var(--muted);background:transparent;cursor:pointer;
  border:1px dashed var(--line);border-radius:var(--r);padding:9px 16px;
}
.arch-btn:hover{color:var(--text);border-color:var(--muted)}
.arch-note{font-size:12px;color:var(--dim)}
.nc-line{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 0 14px;padding:11px 14px;border-radius:var(--r);
  border:1px dashed var(--line);background:color-mix(in srgb, var(--muted) 8%, transparent);
  color:var(--muted);font-size:14.5px;
}

/* ── сравнение ───────────────────────────────────────────── */
.modes{display:flex;gap:8px;padding:6px 0 16px}
.mode{
  font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:999px;
  padding:8px 16px;cursor:pointer;transition:.15s;
}
.mode:hover{color:var(--text)}
.mode[aria-pressed="true"]{background:color-mix(in srgb, var(--acc) 22%, transparent);border-color:var(--acc);color:var(--text)}
.slots{display:grid;gap:14px;grid-template-columns:1fr 1fr}
@media (max-width:760px){.slots{grid-template-columns:1fr}}
.slot{
  position:relative;border:1px solid var(--line);border-radius:14px;padding:15px 16px;
  background:var(--panel);min-height:104px;
}
.slot .slbl{
  font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--dim);margin-bottom:10px;display:flex;align-items:center;gap:8px;
}
.slot .slbl i{width:9px;height:9px;border-radius:3px;display:inline-block}
.sinp{
  width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;color:var(--text);font:inherit;font-size:15px;outline:none;
}
.sinp:focus{border-color:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb, var(--acc) 16%, transparent)}
.sug{
  position:absolute;left:16px;right:16px;top:82px;z-index:30;max-height:290px;overflow:auto;
  background:var(--panel2);border:1px solid var(--line);border-radius:12px;box-shadow:0 26px 50px -24px #000;
}
.sug div{display:flex;align-items:center;gap:10px;padding:9px 13px;cursor:pointer;font-size:15px}
.sug div:hover{background:rgba(255,255,255,.06)}
.sug .g{color:var(--dim);font-family:var(--mono);font-size:13.5px;margin-left:auto}
.picked{display:flex;align-items:flex-start;gap:12px}
.picked .nm{font-size:19px;font-weight:750;letter-spacing:-.01em;line-height:1.25}
.picked .sub{font-family:var(--mono);font-size:13.5px;color:var(--muted);margin-top:4px;display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.xbtn{
  margin-left:auto;flex:none;width:28px;height:28px;border-radius:8px;cursor:pointer;
  border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--muted);font-size:15px;line-height:1;
}
.xbtn:hover{color:#fff;border-color:var(--red)}
.ctable{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:16px;background:var(--panel)}
.crow{display:grid;grid-template-columns:1fr 168px 1fr;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line2)}
.crow:last-child{border-bottom:0}
.crow .lab{
  text-align:center;font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--dim);
}
.crow .v{font-family:var(--mono);font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}
.crow .v.a{text-align:right}
.crow .v.b{text-align:left}
.crow .v.top{color:var(--text)}
.cbar{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:0 16px 13px;align-items:center}
.cbar i{display:block;height:5px;border-radius:3px;background:rgba(255,255,255,.06)}
.cbar i em{display:block;height:100%;border-radius:3px}
.cbar i.l{transform:scaleX(-1)}
.cempty{color:var(--dim);text-align:center;padding:38px 0;font-size:15px}

/* Строка вне рейтинга: та же таблица, но глуше, чтобы не путать с зачётом. */
.thin-row{opacity:.62}
.thin-row:hover{opacity:.85}

/* Закладки сезонов: тот же язык, что у кнопок тем, только в строку. */
.seas{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.seas button{
  display:flex;align-items:center;gap:8px;cursor:pointer;font:inherit;font-size:14.5px;
  border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:8px 14px;
  transition:border-color .16s,color .16s,background .16s;
}
.seas button:hover{color:var(--text);border-color:var(--acc)}
.seas button[aria-pressed="true"]{border-color:var(--violet);background:color-mix(in srgb, var(--acc) 16%, transparent);color:var(--text)}

/* ── форма обратной связи ────────────────────────────────── */
.form{display:grid;gap:13px}
.form .fl{font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin-bottom:7px;display:block}
.form input,.form select,.form textarea{
  width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;
  padding:11px 13px;color:var(--text);font:inherit;font-size:15px;outline:none;
}
.form textarea{min-height:140px;resize:vertical;line-height:1.55}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb, var(--acc) 16%, transparent)}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
@media (max-width:600px){.form .row2{grid-template-columns:1fr}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.sbtn{
  border:0;border-radius:11px;padding:12px 22px;cursor:pointer;font:inherit;font-weight:600;font-size:15px;
  color:var(--ink);background:linear-gradient(135deg,var(--acc),var(--acc-hi));
}
.sbtn:disabled{opacity:.5;cursor:default}
.fmsg{font-size:14.5px;min-height:20px;line-height:1.4}

/* Тройка лидеров: первый стоит в середине, шире соседей и подсвечен. */
.top3{display:grid;gap:14px;grid-template-columns:1fr 1.28fr 1fr;align-items:stretch}
.top3 .t3:nth-child(1){order:2}
.top3 .t3:nth-child(2){order:1}
.top3 .t3:nth-child(3){order:3}
@media (max-width:920px){
  .top3{grid-template-columns:1fr}
  .top3 .t3:nth-child(1),.top3 .t3:nth-child(2),.top3 .t3:nth-child(3){order:0}
  .t3.second,.t3.third{margin-top:0}
}
.t3{
  position:relative;cursor:pointer;overflow:hidden;padding:18px 20px 16px;
  border:1px solid var(--line);border-radius:var(--r);background:var(--card-fill);
  transition:border-color .16s,transform .16s,box-shadow .16s;
  display:flex;flex-direction:column;
}
.t3:hover{border-color:var(--tone);transform:translateY(-3px);box-shadow:var(--shadow)}
.t3::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:rgba(255,255,255,.07)}
/* --tone это цвет ступени того, кто стоит в карточке. Если его нет,
   берём акцент темы. */
.t3{--tone:var(--acc)}
.t3.first{
  padding:24px 24px 20px;border-color:color-mix(in srgb, var(--tone) 45%, transparent);
  background:
    radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--tone) 20%, transparent), transparent 62%),
    var(--card-fill);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--tone) 14%, transparent), 0 26px 60px -40px color-mix(in srgb, var(--tone) 90%, transparent);
}
.t3.first::before{background:linear-gradient(90deg,transparent,var(--tone),transparent)}
.t3.second{
  border-color:color-mix(in srgb, var(--tone) 26%, transparent);
  background:
    radial-gradient(115% 85% at 50% 0%, color-mix(in srgb, var(--tone) 11%, transparent), transparent 60%),
    var(--card-fill);
  box-shadow:0 18px 46px -40px color-mix(in srgb, var(--tone) 75%, transparent);
}
.t3.second::before{background:linear-gradient(90deg,transparent,color-mix(in srgb, var(--tone) 60%, transparent),transparent)}
.t3.third{
  border-color:color-mix(in srgb, var(--tone) 17%, transparent);
  background:
    radial-gradient(115% 85% at 50% 0%, color-mix(in srgb, var(--tone) 7%, transparent), transparent 58%),
    var(--card-fill);
  box-shadow:0 16px 42px -42px color-mix(in srgb, var(--tone) 60%, transparent);
}
.t3.third::before{background:linear-gradient(90deg,transparent,color-mix(in srgb, var(--tone) 38%, transparent),transparent)}
/* ступенька: боковые ниже центральной */
.t3.second{margin-top:20px}
.t3.third{margin-top:32px}
.t3 .h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.t3 .pl{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--dim);letter-spacing:.08em}

.t3 .nm{
  font-family:var(--champ-family);font-weight:var(--champ-weight);text-transform:var(--champ-tt);
  letter-spacing:var(--champ-track);font-size:17px;line-height:1.2;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.t3.first .nm{font-size:clamp(20px,1.9vw,26px)}
.t3 .sub{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:9px;font-family:var(--mono);font-size:13.5px;color:var(--muted)}
.t3 .nums{display:flex;gap:18px;margin-top:auto;padding-top:16px}
.t3 .nums b{display:block;font-family:var(--mono);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.t3.first .nums{gap:24px}
.t3.first .nums b{font-size:20px}
.t3 .nums i{display:block;font-style:normal;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-top:4px}

/* ── обзор ───────────────────────────────────────────────── */
.shead{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:32px 0 15px}
.shead:first-child{padding-top:6px}
.shead .ic{flex:none;display:block;width:19px;height:19px;color:var(--acc);opacity:.9}
.shead .ic svg{display:block;width:100%;height:100%}
.shead h2{
  margin:0;line-height:1.15;white-space:nowrap;min-width:0;
  font-family:var(--h-family);font-size:var(--h-size);font-weight:var(--h-weight);
  text-transform:var(--h-tt);letter-spacing:var(--h-track);color:var(--h-color);
}
.shead i{flex:1 1 24px;min-width:24px;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.shead em{min-width:0;font-style:normal;font-family:var(--mono);font-size:13.5px;letter-spacing:.04em;color:var(--muted);white-space:normal;overflow-wrap:anywhere}
.champ{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:center;
  border:1px solid var(--line);border-radius:var(--r);padding:26px 28px;overflow:hidden;cursor:pointer;
  background:linear-gradient(100deg,color-mix(in srgb, var(--acc) 16%, transparent),var(--card-fill) 58%);
  transition:border-color .16s,transform .16s;
}
.champ:hover{border-color:var(--acc);transform:translateY(-2px);box-shadow:var(--shadow)}
.champ::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--violet),transparent)}
.cleft{display:flex;align-items:center;gap:20px;min-width:0}
.ring{
  flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;position:relative;
  font-family:var(--mono);font-size:15px;font-weight:700;color:var(--acc-hi);
  border:1px solid color-mix(in srgb, var(--acc) 42%, transparent);
  background:color-mix(in srgb, var(--acc) 9%, transparent);
}
.ring::after{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  border:1px solid color-mix(in srgb, var(--acc) 16%, transparent);
}
.champ .nm{
  font-family:var(--champ-family);font-size:var(--champ-size);font-weight:var(--champ-weight);
  text-transform:var(--champ-tt);letter-spacing:var(--champ-track);
  line-height:1.06;overflow:hidden;text-overflow:ellipsis;
}
.champ .nums div + div{border-left:1px solid var(--line2);padding-left:30px}
.champ .sub{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;font-family:var(--mono);font-size:15px;color:var(--muted)}
.champ .nums{display:flex;gap:30px;align-items:center}
.champ .nums div{text-align:right}
.champ .nums b{display:block;font-family:var(--mono);font-size:clamp(21px,2.6vw,30px);font-weight:800;font-variant-numeric:tabular-nums}
.champ .nums i{display:block;font-style:normal;font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin-top:5px}
@media (max-width:820px){
  .champ{grid-template-columns:1fr}
  .champ .nums{justify-content:space-between;gap:12px}
}

/* .feed/.frow2 (таблица ленты боёв на главной) убраны 14.09.2026: лента
   теперь на тех же карточках .wlist/.wcard, что раздел ВЗП (слово гостя). */
.feed-more{
  padding:14px 17px;text-align:center;cursor:pointer;font-family:var(--mono);font-size:14.5px;
  letter-spacing:.1em;color:var(--violet-hi);background:color-mix(in srgb, var(--acc) 7%, transparent);
  border-radius:var(--r);
}
.feed-more:hover{background:color-mix(in srgb, var(--acc) 16%, transparent);color:#fff}

.fcards{display:grid;gap:13px;grid-template-columns:repeat(auto-fill,minmax(min(100%,282px),1fr))}
.fcard{
  position:relative;border:1px solid var(--line);border-radius:var(--r);padding:17px 18px 15px;overflow:hidden;
  background:var(--card-fill);
  cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s;
}
.fcard::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:rgba(255,255,255,.08)}
.fcard.hot::before{background:linear-gradient(90deg,var(--violet),color-mix(in srgb, var(--acc) 0%, transparent))}
.fcard.hot{background:linear-gradient(180deg,color-mix(in srgb, var(--acc) 16%, transparent),var(--panel) 62%)}
.fcard:hover{border-color:var(--acc);transform:translateY(-3px);box-shadow:var(--shadow)}
.fbar{height:4px;border-radius:3px;background:rgba(255,255,255,.07);margin-top:11px;overflow:hidden}
.fbar em{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--violet),var(--violet-hi))}
.fcard .rk{
  position:absolute;top:16px;right:16px;font-family:var(--mono);font-size:14.5px;color:var(--dim);
  font-variant-numeric:tabular-nums;
}
.fcard .nm{
  font-size:17px;font-weight:700;letter-spacing:-.01em;padding-right:34px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fcard .sv{display:flex;align-items:center;gap:8px;margin-top:7px}
.fcard .rt{font-family:var(--mono);font-size:27px;font-weight:800;letter-spacing:-.02em;margin-top:13px;font-variant-numeric:tabular-nums;color:#fff}
.fcard .lb{font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;color:var(--dim);margin-top:2px;text-transform:uppercase}
.fcard .st{display:flex;gap:16px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line2)}
.fcard .st div{min-width:0}
.fcard .st b{display:block;font-family:var(--mono);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.fcard .st i{
  display:block;font-style:normal;font-family:var(--mono);font-size:13px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--dim);margin-top:3px;
}
.grid{display:grid;gap:16px}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}
.card{
  position:relative;border-radius:var(--r);padding:18px 20px;
  background:var(--panel);
  border:1px solid var(--line);overflow:hidden;
}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb, var(--acc-hi) 50%, transparent),transparent)}
.card h3{
  margin:0 0 14px;font-family:var(--h-family);font-size:var(--h2-size);font-weight:var(--h-weight);
  text-transform:var(--h-tt);letter-spacing:var(--h-track);color:var(--h-color);
}
.kpi b{
  display:block;font-family:var(--mono);font-size:clamp(23px,3vw,32px);font-weight:700;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;white-space:nowrap;
  background:linear-gradient(96deg,var(--text),var(--violet-hi));-webkit-background-clip:text;background-clip:text;color:transparent;
}
.kpi i{display:block;font-style:normal;font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:8px}

/* пьедестал */
.podium{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.pod{
  position:relative;border-radius:var(--r);padding:20px;overflow:hidden;
  background:linear-gradient(180deg,color-mix(in srgb, var(--panel2) 95%, transparent),color-mix(in srgb, var(--ink) 95%, transparent));border:1px solid var(--line);
}
.pod::after{content:"";position:absolute;left:0;right:0;top:0;height:3px}
.pod.p1::after{background:linear-gradient(90deg,var(--gold),var(--acc-hi))}
.pod.p2::after{background:linear-gradient(90deg,var(--silver),#fff)}
.pod.p3::after{background:linear-gradient(90deg,var(--bronze),var(--acc-hi))}
.pod .place{font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}
.pod .nm{font-size:19px;font-weight:700;letter-spacing:-.01em;margin:8px 0 2px;overflow:hidden;text-overflow:ellipsis}
.pod .sub{font-family:var(--mono);font-size:14.5px;color:var(--muted)}
.pod .val{
  font-family:var(--mono);font-size:29px;font-weight:700;letter-spacing:-.03em;margin-top:14px;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(96deg,var(--text),var(--violet-hi));-webkit-background-clip:text;background-clip:text;color:transparent;
}

/* Пьедестал: первый в середине и заметно выше, второй и третий по бокам.
   Ровные три одинаковые карточки не показывали, кто здесь главный. */
.oline{display:flex;flex-wrap:wrap;gap:10px 26px;padding:4px 0 20px;font-family:var(--mono);font-size:14.5px;color:var(--muted)}
.oline span{display:flex;align-items:baseline;gap:8px}
.oline b{font-size:17px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.pod3{display:grid;gap:14px;grid-template-columns:1fr 1.18fr 1fr;align-items:end}
.p3{
  position:relative;cursor:pointer;border-radius:16px;padding:20px 18px 18px;text-align:center;
  background:linear-gradient(180deg,color-mix(in srgb, var(--panel2) 96%, transparent),color-mix(in srgb, var(--ink) 96%, transparent));
  border:1px solid var(--line);overflow:hidden;
  transition:transform .16s,box-shadow .16s,border-color .16s;
}
.p3::before{content:"";position:absolute;left:0;right:0;top:0;height:3px}
.p3:hover{transform:translateY(-4px);border-color:var(--violet);box-shadow:0 26px 50px -32px color-mix(in srgb, var(--acc) 70%, transparent)}
.pl1{padding:30px 20px 24px}
.pl1::before{background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.pl2::before{background:rgba(255,255,255,.10)}
.pl3::before{background:rgba(255,255,255,.07)}
.pl1{box-shadow:0 0 0 1px color-mix(in srgb, var(--acc-hi) 16%, transparent),0 28px 56px -36px color-mix(in srgb, var(--acc-hi) 32%, transparent)}
.medal{
  width:44px;height:44px;margin:0 auto 12px;border-radius:14px;display:grid;place-items:center;
  font-family:var(--mono);font-size:19px;font-weight:800;color:var(--ink);
}
.pl1 .medal{width:54px;height:54px;font-size:23px;background:linear-gradient(145deg,var(--acc-hi),var(--gold));box-shadow:0 0 22px -6px color-mix(in srgb, var(--acc-hi) 55%, transparent)}
.pl2 .medal{background:rgba(255,255,255,.09);color:var(--text);font-weight:700}
.pl3 .medal{background:rgba(255,255,255,.06);color:var(--muted);font-weight:700}
.p3name{font-size:19px;font-weight:750;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl1 .p3name{font-size:23px}
.p3sub{font-family:var(--mono);font-size:13.5px;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p3pts{
  font-family:var(--mono);font-size:30px;font-weight:800;letter-spacing:-.03em;margin-top:14px;
  font-variant-numeric:tabular-nums;color:var(--text);
}
.pl1 .p3pts{color:var(--text)}
.pl1 .p3pts{font-size:38px}
.p3lb{font-family:var(--mono);font-size:13px;letter-spacing:.05em;color:var(--dim);margin-top:2px}
.p3row{display:flex;justify-content:center;gap:20px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line2)}
.p3row b{display:block;font-family:var(--mono);font-size:15.5px;font-weight:700;font-variant-numeric:tabular-nums}
.p3row i{display:block;font-style:normal;font-family:var(--mono);font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin-top:3px}
@media (max-width:760px){
  .pod3{grid-template-columns:1fr}
  .pl1{order:-1}
}
.podx{display:flex;gap:18px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line2)}
.podx b{display:block;font-family:var(--mono);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.podx i{display:block;font-style:normal;font-family:var(--mono);font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin-top:3px}
.pod{cursor:pointer;transition:transform .16s,box-shadow .16s}
.pod:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.holders{display:flex;flex-direction:column;gap:9px}
.hrow{display:grid;grid-template-columns:auto minmax(0,1fr) 88px auto;gap:11px;align-items:center;font-size:14.5px;padding:3px 0}
.hrow:hover .hnm{color:#fff}
.hnm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.hrow b{font-family:var(--mono);font-size:14.5px;color:var(--amber);font-variant-numeric:tabular-nums}
.mrow .nm .chip{margin-left:9px}
.pod .val small{font-size:13px;letter-spacing:.05em;color:var(--dim);display:block;-webkit-text-fill-color:var(--dim);margin-top:3px}

/* мини-список */
.mlist{display:flex;flex-direction:column;gap:2px}
.mrow{display:grid;grid-template-columns:26px 1fr auto;gap:12px;align-items:center;padding:8px 8px;border-radius:9px;transition:background .14s}
.mrow:hover{background:color-mix(in srgb, var(--acc) 9%, transparent)}
.mrow .n{font-family:var(--mono);font-size:13.5px;color:var(--dim);text-align:right}
.mrow .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600}
.mrow .v{font-family:var(--mono);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--violet-hi)}

/* столбики серверов */
.flist{display:flex;flex-direction:column}
.frow{
  display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:center;
  padding:11px 8px;border-radius:10px;cursor:pointer;border-bottom:1px solid var(--line2);
  transition:background .14s;
}
.frow:last-child{border-bottom:0}
.frow:hover{background:color-mix(in srgb, var(--acc) 10%, transparent)}
.frank{
  font-family:var(--mono);font-size:13.5px;color:var(--dim);text-align:center;
  width:26px;height:26px;line-height:26px;border-radius:8px;justify-self:center;
}
.frank.m1{color:var(--text);font-weight:700}
.frank.m2{color:var(--text);font-weight:700}
.frank.m3{color:var(--text);font-weight:700}
.fmid{min-width:0}
.fname{font-size:15.5px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:9px}
.fsub{display:flex;gap:14px;font-family:var(--mono);font-size:13.5px;color:var(--dim);margin-top:3px}
.fright{display:flex;align-items:center;gap:12px}
.fpts{font-family:var(--mono);font-size:14.5px;color:var(--violet-hi)}
.fright b{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--violet-hi);font-variant-numeric:tabular-nums}
.bars{display:flex;flex-direction:column;gap:9px}
.brow{display:grid;grid-template-columns:96px 1fr auto;gap:11px;align-items:center;font-size:13.5px}
.brow em{font-style:normal;font-family:var(--mono);font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.btrack{height:8px;border-radius:5px;background:rgba(255,255,255,.05);overflow:hidden}
.bfill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--acc),var(--acc-hi))}
.brow b{font-family:var(--mono);font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}

/* ── карточки серверов (территории) ──────────────────────── */
.scards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
/* Карточка сервера это кнопка, и она обязана выглядеть кнопкой: своя рамка,
   подсветка сверху, стрелка и явная надпись. Прежний вариант читался как
   обычная плитка, и пользователь не понимал, что по ней можно щёлкать. */
.scard{
  position:relative;text-align:left;cursor:pointer;border-radius:var(--r);padding:18px 18px 16px;overflow:hidden;
  background:var(--card-fill);
  border:1px solid var(--line);color:inherit;font:inherit;
  transition:border-color .16s,transform .16s,box-shadow .16s,background .16s;
}
.scard::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--acc),transparent)}
.scard:hover,.scard:focus-visible{
  border-color:var(--acc);transform:translateY(-3px);box-shadow:var(--shadow);
  background:var(--panel2);
}
.scard .go{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;
  padding-top:12px;border-top:1px solid var(--line2);
  font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;color:var(--violet-hi);
}
.scard .go span{transition:transform .16s}
.scard:hover .go span{transform:translateX(4px)}
.scard .top{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.scard .nm{font-weight:700;font-size:17px}
.scard .sub{font-family:var(--mono);font-size:13.5px;color:var(--muted)}
.scard .lead{font-family:var(--mono);font-size:14.5px;color:var(--text);display:flex;justify-content:space-between;gap:10px;margin-top:9px}
.scard .lead b{color:var(--amber);font-weight:700}

/* ── тир лист ────────────────────────────────────────────────
   Цвет тира берётся из ступеней темы (--t1, --t2, --t3), поэтому раздел
   перекрашивается вместе с оформлением, без перерисовки. Первый тир главнее
   остальных: крупнее цифры, заливка значка и свечение подложки, а не только
   другой оттенок полоски. Значки серверов цветные, как в игре. */
.tier-l1{--tc:var(--t1)}
.tier-l2{--tc:var(--t2)}
.tier-l3{--tc:var(--t3)}
.tier-l4{--tc:var(--t4)}
.tier-intro{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 34px;align-items:center;
  border:1px solid var(--line);border-radius:var(--r);padding:16px 22px;
  background:var(--card-fill);
}
.tier-intro p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.55;max-width:70ch}
.tier-intro p:first-child{color:var(--text);font-weight:600;margin-bottom:4px}
.tier-facts{display:flex;flex-wrap:wrap;gap:12px 30px}
.tier-fact b{display:block;font-family:var(--mono);font-size:20px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.tier-fact i{display:block;font-style:normal;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:3px;white-space:nowrap}
.tier-sect{margin-top:30px}
.tier-head{display:flex;align-items:center;gap:14px;margin-bottom:13px}
.tier-head::after{content:"";flex:1 1 24px;min-width:24px;height:1px;background:linear-gradient(90deg,color-mix(in srgb, var(--tc) 38%, transparent),transparent)}
.tier-badge{
  flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;
  font-family:var(--mono);font-size:19px;font-weight:800;line-height:1;color:var(--tc);
  border:1px solid color-mix(in srgb, var(--tc) 45%, transparent);
  background:color-mix(in srgb, var(--tc) 11%, transparent);
}
.tier-l1 .tier-badge{
  width:48px;height:48px;font-size:23px;color:var(--ink);background:var(--tc);border-color:var(--tc);
  box-shadow:0 12px 30px -14px color-mix(in srgb, var(--tc) 85%, transparent);
}
.tier-ht{min-width:0}
.tier-ht h3{margin:0;font-family:var(--mono);font-size:14.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--tc);line-height:1.2}
.tier-l1 .tier-ht h3{font-size:16px}
.tier-ht p{margin:4px 0 0;font-family:var(--mono);font-size:13px;color:var(--muted)}
.tier-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,212px),1fr))}
/* Строка с именем тянется (1fr), поэтому цифры в карточках одного ряда стоят
   на одной высоте, даже если у соседа имя в две строки. */
.tier-card{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto auto auto;
  grid-template-areas:"srv srv" "nm nm" "rt rt" "n n" "bar bar";align-items:center;column-gap:10px;
  text-align:left;cursor:pointer;overflow:hidden;padding:14px 16px 15px;border-radius:var(--r);
  color:var(--text);font:inherit;
  border:1px solid color-mix(in srgb, var(--tc) 14%, var(--line));
  background:linear-gradient(180deg,color-mix(in srgb, var(--tc) 5%, transparent),transparent 65%),var(--card-fill);
  transition:border-color .16s,transform .16s,box-shadow .16s;
}
.tier-card::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,color-mix(in srgb, var(--tc) 55%, transparent),transparent 85%)}
.tier-card:hover{border-color:color-mix(in srgb, var(--tc) 60%, transparent);transform:translateY(-2px);box-shadow:var(--shadow)}
.tier-card:focus-visible{outline:2px solid var(--tc);outline-offset:3px;border-radius:var(--r);border-color:color-mix(in srgb, var(--tc) 60%, transparent)}
.tier-card:disabled{cursor:default;opacity:.62}
.tier-card:disabled:hover{transform:none;box-shadow:none;border-color:color-mix(in srgb, var(--tc) 14%, var(--line))}
.tier-l1 .tier-card{
  padding:18px 18px 17px;border-color:color-mix(in srgb, var(--tc) 36%, transparent);
  background:radial-gradient(120% 90% at 50% 0%,color-mix(in srgb, var(--tc) 16%, transparent),transparent 62%),var(--card-fill);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--tc) 8%, transparent),0 24px 56px -44px color-mix(in srgb, var(--tc) 85%, transparent);
}
.tier-l1 .tier-card::before{background:linear-gradient(90deg,transparent,var(--tc),transparent)}
.tier-l1 .tier-card:hover{border-color:var(--tc)}
/* Сервер лежит поверх всей верхней строки: в своей узкой колонке длинное имя
   вроде Grapeseed раздувало её и выдавливало рейтинг на вторую строку. */
.tier-srv{grid-area:1/1/2/3;justify-self:end;display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:calc(100% - 46px);font-family:var(--mono);font-size:12.5px;color:var(--muted);white-space:nowrap}
.tier-srvn{overflow:hidden;text-overflow:ellipsis}
/* Значок сервера это цветной эмодзи текстом. Шрифт свой: в темах с
   моноширинным шрифтом эмодзи иначе может выйти чёрно-белым. */
.tier-emo{flex:none;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:15px;line-height:1;font-style:normal;letter-spacing:0}
.tier-emo-img{flex:none;display:block;width:16px;height:16px;object-fit:contain}
.tier-nm{
  grid-area:nm;align-self:start;margin:10px 0 12px;font-size:15.5px;font-weight:700;line-height:1.25;color:var(--text);
  overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
}
.tier-l1 .tier-nm{
  margin:12px 0 16px;font-family:var(--champ-family);font-weight:var(--champ-weight);
  text-transform:var(--champ-tt);letter-spacing:var(--champ-track);font-size:18px;line-height:1.22;
}
.tier-rt{grid-area:rt;display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px;min-width:0}
.tier-rt b{font-family:var(--mono);font-size:19px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.tier-l1 .tier-rt b{font-size:24px}
.tier-n{grid-area:n;justify-self:start;align-self:start;margin-top:4px;min-width:0;font-family:var(--mono);font-size:12.5px;color:var(--muted);white-space:nowrap}
.tier-n b{color:var(--text-2);font-weight:600;font-variant-numeric:tabular-nums}
.tier-bar{grid-area:bar;display:block;height:4px;margin-top:12px;border-radius:3px;overflow:hidden;background:color-mix(in srgb, var(--text) 8%, transparent)}
.tier-bar i{display:block;height:100%;border-radius:inherit;background:var(--tc)}
/* famvote 15.09.2026, поле 16.09.2026: общие классы полосы голоса, сейчас
   их использует список «самая симпатизирующая семья» (.fv-strip ниже) и
   список «самая нищая семья» (.pv-strip, дальше по файлу). Раньше полоса стояла поверх
   карточки рейтингового тира (.tier-cell/.tier-vote), тех классов и той
   разметки больше нет: голосование убрано с /tier на /vote простым
   списком (слово гостя «в разделе голосование не должно быть тир листа»,
   подробно в site.md). Цвета только из темы. */
.tv-l{display:flex;align-items:center;min-width:0}
.tv-st{font-family:var(--mono);font-size:12.5px;color:var(--muted);white-space:nowrap}
.tv-pick{
  display:inline-flex;align-items:center;gap:5px;min-width:0;padding:3px 9px 3px 7px;border-radius:999px;
  font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap;color:var(--acc);
  border:1px solid color-mix(in srgb, var(--acc) 45%, transparent);background:color-mix(in srgb, var(--acc) 12%, transparent);
}
.tv-pick svg{width:13px;height:13px;flex:none}
@keyframes terr-live-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.tv-btn,.tv-cnt{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;font-family:var(--mono);font-size:13.5px;line-height:1}
.tv-btn{
  min-height:36px;min-width:66px;padding:0 12px;border-radius:999px;border:1px solid var(--line2);background:transparent;
  color:var(--text-2);cursor:pointer;transition:border-color .14s,background-color .14s,color .14s;
}
.tv-btn svg,.tv-cnt svg{width:14px;height:14px;flex:none}
.tv-btn b,.tv-cnt b{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.tv-btn:hover{border-color:var(--acc);color:var(--text)}
.tv-btn:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.tv-btn[aria-pressed="true"]{background:var(--acc);border-color:var(--acc);color:var(--ink)}
.tv-btn[aria-pressed="true"] b{color:var(--ink)}
.tv-btn[aria-disabled="true"]{cursor:default;border-style:dashed;color:var(--muted)}
.tv-btn[aria-disabled="true"]:hover{border-color:var(--line2);color:var(--muted)}
.tv-btn[aria-disabled="true"] b{color:var(--text-2)}
.tv-btn.tv-arm{border-color:var(--acc);color:var(--text);font-family:var(--sans);font-size:13px}
.tv-btn.busy{opacity:.6;pointer-events:none}
.tv-cnt{min-height:36px;padding:0 4px;color:var(--muted)}
.tv-cnt.tv-wait b{color:var(--muted)}
.tv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tv-intro{
  display:none;margin:0 0 4px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--card-fill);font-size:14px;line-height:1.55;color:var(--muted);
}
.tv-intro.tv-show{display:block}
.tv-intro p{margin:0;max-width:92ch}
.tv-intro p + p{margin-top:4px}
.tv-intro b{color:var(--text)}
.tv-intro .tv-me{color:var(--text-2)}
.tv-intro a{color:var(--acc);text-decoration:underline;text-underline-offset:2px}
.tv-msg{margin-top:4px;font-family:var(--mono);font-size:13px;color:var(--text-2)}
.tv-msg:empty{display:none}
.tv-msg.good{color:var(--pos)}
.tv-msg.bad{color:var(--neg)}
html[data-theme="voltage"] .tv-intro{background-color:var(--ink)}
@media (max-width:560px){
  .tv-intro{padding:11px 13px}
}
/* poorvote 16.09.2026: голосование «самая нищая семья» своим списком
   (.pv-list), не на карточках тира — гость попросил именно так, отдельно от
   тир листа. Строка списка .pv-strip: имя семьи и сервер слева (.pv-nm),
   дальше отметка/бейдж (tv-l, общий с famvote), справа число и кнопка.
   Цвет акцента свой (--neg), чтобы не путать с «выбором игроков» (.fv-strip
   ниже, список famvote на той же странице /vote, без переопределения цвета:
   там по умолчанию --acc). Классы tv-l/tv-st/tv-pick/tv-btn/tv-cnt/tv-sr,
   контейнер .pv-list и подписи .pv-nm/.pv-sv общие для обоих списков. */
.pv-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.pv-empty{padding:14px 16px;border:1px dashed var(--line2);border-radius:var(--r);color:var(--muted);font-family:var(--mono);font-size:13.5px;text-align:center}
/* Строка своего голоса вне топ 10 (16.09.2026, слово гостя): тонкий
   разделитель над ней, чтобы не путать с топом. */
.pv-you-sep{margin-top:2px;padding-top:10px;border-top:1px dashed var(--line2);color:var(--muted);font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.pv-strip,.fv-strip{display:none}
.pv-strip.pv-on,.fv-strip.fv-on{
  display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px 14px;
  padding:9px 14px;border:1px solid var(--line2);border-radius:var(--r);background:var(--card-fill);
}
.pv-strip.pv-mine{border-color:var(--neg)}
.fv-strip.fv-mine{border-color:var(--acc)}
.pv-nm{display:flex;align-items:baseline;gap:8px;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-sv{font-family:var(--mono);font-size:12px;font-weight:400;color:var(--muted);white-space:nowrap}
.pv-strip .tv-pick{color:var(--neg);border-color:color-mix(in srgb, var(--neg) 45%, transparent);background:color-mix(in srgb, var(--neg) 12%, transparent)}
.pv-strip .tv-btn[aria-pressed="true"]{background:var(--neg);border-color:var(--neg);color:var(--ink)}
.pv-strip .tv-btn[aria-pressed="true"] b{color:var(--ink)}
.pv-strip .tv-btn:hover{border-color:var(--neg)}
.pv-strip .tv-btn:focus-visible{outline-color:var(--neg)}
.pv-strip .tv-btn.tv-arm{border-color:var(--neg)}
/* Поиск любой семьи для голоса «нищая» (16.09.2026, слово гостя): та же
   .sug, что на странице сравнения, но своя позиция подсказок — там верх
   считался от фиксированной высоты шапки картинки, тут просто под полем. */
.pv-search{position:relative;margin-top:10px;max-width:360px}
.pv-search .sug{top:calc(100% + 4px);left:0;right:0}
@media (max-width:560px){
  .pv-strip.pv-on,.fv-strip.fv-on{min-height:38px;padding:8px 10px}
  .pv-intro{padding:11px 13px}
  .pv-search{max-width:100%}
}
.tier-empty{
  border:1px dashed color-mix(in srgb, var(--tc) 30%, var(--line));border-radius:var(--r);
  padding:18px 16px;text-align:center;font-family:var(--mono);font-size:13.5px;color:var(--muted);
}
.dt-note.tier-foot{margin:22px 0 0}
/* Значок сервера прямо в имени карточки тира серверов: img у значка блочный,
   врастает в строку через свой inline-flex, а не через display самой картинки. */
.tier-nm-ico{display:inline-flex;vertical-align:-3px;margin-right:6px}
/* Награды: общий стиль для карточек семьи И игрока, тиры/сезоны/MVP/KEY. */
.awards-row{display:flex;flex-wrap:wrap;gap:8px}
.award-chip{
  display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;
  border:1px solid color-mix(in srgb, var(--tc) 45%, var(--line));
  background:color-mix(in srgb, var(--tc) 10%, var(--panel2));
  font-family:var(--mono);font-size:12.5px;color:var(--text-2);white-space:nowrap;
}
.award-chip b{color:var(--tc);font-weight:700}
/* Медаль MVP/KEY: настоящий силуэт медали — лента сверху и блестящий кружок
   снизу, а не пилюля с текстом в строку. Подпись и число выгравированы на
   кружке. Размер подогнан под соседние медали тира/сезона (--md:62px в
   .md-sm), чтобы в одном ряду наград всё было одного размера. У соседних
   медалей (.md-chip) ряд .awards-row выравнивается по низу
   (:has(.md-chip){align-items:flex-end}), а у них под кружком ещё подпись
   строкой (.md-cap) — padding-bottom держит тот же запас снизу, чтобы кружки
   были на одной высоте, приподнято повыше (13.09.2026, восстановлено). */
.medal-badge{
  position:relative;display:inline-flex;flex-direction:column;align-items:center;
  width:62px;padding-top:26px;padding-bottom:28px;
}
/* У .medal-badge теперь ещё классы award-chip и aw (чтобы медаль видела
   вкладка «Награды» на /p/ и подсказка при наведении, см. medalBadge() в
   скрипте) — без явного переопределения тут выигрывали бы их
   .award-chip.aw{flex-direction:row} и пилюля из .award-chip{padding/border/
   background}, и форма медали ломалась бы. Специфичность в три класса выше
   их двух, порядок в файле уже не важен. */
.award-chip.aw.medal-badge{
  flex-direction:column;align-items:center;gap:0;
  padding:26px 0 28px;border:0;border-radius:0;background:none;
}
.medal-ribbon{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:0;height:0;
  border-left:14px solid transparent;
  border-right:14px solid transparent;
  border-top:26px solid color-mix(in srgb, var(--tc) 80%, var(--ink));
}
.medal-disc{
  position:relative;z-index:1;width:56px;height:56px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  background:radial-gradient(38% 38% at 35% 28%,color-mix(in srgb, var(--tc) 45%, white 25%),color-mix(in srgb, var(--tc) 88%, black 8%) 72%);
  border:2px solid color-mix(in srgb, var(--tc) 65%, white 12%);
  box-shadow:0 3px 10px -3px color-mix(in srgb, var(--tc) 70%, transparent), inset 0 1px 1px color-mix(in srgb, white 45%, transparent);
}
.medal-disc b{font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);line-height:1}
.medal-disc i{font-style:normal;font-family:var(--mono);font-size:16px;font-weight:800;color:var(--ink);line-height:1.1;font-variant-numeric:tabular-nums}
/* MVP заметнее KEY: свечение вокруг кружка и подсветка ленты, форма та же (13.09.2026). */
.medal-badge.medal-mvp .medal-disc{
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--tc) 55%, transparent),
    0 0 18px 3px color-mix(in srgb, var(--tc) 55%, transparent),
    inset 0 1px 1px color-mix(in srgb, white 55%, transparent);
}
.medal-badge.medal-mvp .medal-ribbon{
  filter:drop-shadow(0 0 4px color-mix(in srgb, var(--tc) 60%, transparent));
}
@media (max-width:760px){
  .tier-intro{grid-template-columns:1fr;padding:14px 16px}
  .tier-facts{gap:10px 24px}
  .tier-fact b{font-size:18px}
}
/* На телефоне второй и дальше тиры становятся строками списка: место слева,
   имя и сервер в середине, рейтинг и бои справа. Первый тир остаётся
   карточками, он главный. */
@media (max-width:560px){
  .tier-sect{margin-top:24px}
  .tier-grid{gap:8px}
  .tier-sect:not(.tier-l1) .tier-grid{grid-template-columns:minmax(0,1fr)}
  .tier-l1 .tier-grid{gap:10px}
  .tier-l1 .tier-card{padding:15px 15px 14px}
  .tier-l1 .tier-nm{margin:9px 0 10px}
  .tier-sect:not(.tier-l1) .tier-card{
    grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;grid-template-areas:"nm rt" "srv n";
    gap:4px 10px;padding:11px 13px 11px 10px;
  }
  .tier-sect:not(.tier-l1) .tier-card::before{right:auto;bottom:0;width:2px;height:auto;background:var(--tc)}
  .tier-sect:not(.tier-l1) .tier-nm{margin:0;min-height:0;font-size:15px}
  .tier-sect:not(.tier-l1) .tier-srv{grid-area:srv;justify-self:start;max-width:100%}
  .tier-sect:not(.tier-l1) .tier-rt{justify-self:end;justify-content:flex-end;flex-wrap:nowrap}
  .tier-sect:not(.tier-l1) .tier-rt b{font-size:16px}
  .tier-sect:not(.tier-l1) .tier-n{justify-self:end;align-self:center;margin-top:0}
  .tier-sect:not(.tier-l1) .tier-bar{display:none}
}
@media (prefers-reduced-motion:reduce){
  .tier-card{transition:none}
  .tier-card:hover{transform:none}
}
/* ── тир лист: конец ── */
.back{
  font-family:var(--mono);font-size:13.5px;color:var(--muted);background:rgba(255,255,255,.04);
  border:1px solid var(--line);border-radius:10px;padding:8px 13px;cursor:pointer;margin-bottom:14px;
}
.back:hover{color:var(--text);border-color:var(--violet)}

/* ── карточка сущности ───────────────────────────────────── */
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.68);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.mpanel{
  width:min(920px,100%);max-height:88vh;max-height:88dvh;overflow:auto;border-radius:var(--r);
  background:var(--panel);border:1px solid var(--line);
  box-shadow:0 60px 120px -40px #000;position:relative;
}
.mhead{
  position:sticky;top:0;z-index:2;padding:22px 22px 18px;border-bottom:1px solid var(--line);
  background:var(--panel2);overflow:hidden;
}
/* Подложка шапки светится цветом уровня игрока: карточка сильного и слабого
   должны отличаться с первого взгляда, а не только цифрами. */
.mhead::before{
  content:"";position:absolute;inset:-40% -10% auto -10%;height:150%;
  background:radial-gradient(60% 100% at 20% 0%,var(--glow,color-mix(in srgb, var(--acc) 45%, transparent)),transparent 70%);
  pointer-events:none;
}
.mhead::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--glow,var(--violet)),transparent 70%);
}
.mhead .who,.mhead h2,.mhead .sub,.mhead .mchips{position:relative;z-index:1}
.mhead h2{font-size:26px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;line-height:1.15}
.mhead .who{gap:13px}
.mhead .tier{width:5px;height:40px}
.mhead h2{
  margin:0;font-family:var(--champ-family);font-size:22px;font-weight:var(--champ-weight);
  text-transform:none;letter-spacing:var(--champ-track);line-height:1.25;
}
.mhead .sub{font-family:var(--mono);font-size:14.5px;color:var(--muted);margin-top:4px}
.mbtns{position:relative;z-index:2;display:flex;gap:8px;align-items:center;flex:0 1 auto;min-width:0;max-width:100%;flex-wrap:wrap;justify-content:flex-end}
.mback,.mclose{
  height:36px;border-radius:10px;cursor:pointer;background:rgba(255,255,255,.07);
  border:1px solid var(--line);color:var(--muted);font-family:var(--mono);font-size:13.5px;
  display:inline-flex;align-items:center;justify-content:center;
}
.mback{padding:0 14px}
.mclose{width:36px;font-size:18px;line-height:1}
.mback:hover,.mclose:hover{color:var(--text);border-color:var(--violet);background:color-mix(in srgb, var(--acc) 18%, transparent)}
.mtop{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.mtop .who{flex:1;min-width:0}
.mbody{padding:18px 22px 26px}
.lvl{
  display:inline-flex;align-items:center;flex:none;
  font-family:var(--mono);font-size:13.5px;font-weight:600;letter-spacing:.04em;
  border:1px solid;border-radius:999px;padding:5px 12px;
}
.mranks{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}
.rkchip{
  display:inline-flex;align-items:baseline;gap:7px;font-family:var(--mono);font-size:13.5px;color:var(--muted);
  background:rgba(255,255,255,.045);border:1px solid var(--line2);border-radius:999px;padding:6px 14px;
}
.rkchip b{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.mchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.mchip{
  font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;color:var(--violet-hi);
  border:1px solid color-mix(in srgb, var(--acc) 35%, transparent);background:color-mix(in srgb, var(--acc) 13%, transparent);border-radius:999px;padding:5px 12px;
}
.mchip.gold{color:var(--ink);background:var(--acc-hi);border-color:transparent;font-weight:700}
.mchip.plain{color:var(--muted);border-color:var(--line);background:rgba(255,255,255,.04)}
/* «сильнее скольких» показываем полосой: число в процентах само по себе
   ничего не говорит, а полоса сразу ставит игрока на шкалу сервера. */
.style2{display:grid;gap:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center}
@media (max-width:620px){.style2{grid-template-columns:1fr}}
.radar{width:210px;height:210px;flex:none}
.radarwrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.radarnote{margin:0;color:var(--dim);font-size:14.5px;max-width:34ch}
.chart{width:100%;margin-top:2px}
.chart canvas{display:block;width:100%}
/* Легенда над графиком с двумя линиями (17.09.2026, слово гостя: график
   боёв в карточке сервера). Только переменные темы. */
.chart-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin:0 0 6px;font-size:12.5px;color:var(--muted)}
.chart-lg-item{display:inline-flex;align-items:center;gap:6px}
.chart-lg-item i{display:inline-block;width:10px;height:2.5px;border-radius:2px;background:var(--acc)}
.sparklab{display:flex;justify-content:space-between;margin-top:6px;gap:8px}
.sparklab span{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0}
.sparklab b{font-family:var(--mono);font-size:13.5px;color:var(--violet-hi);font-variant-numeric:tabular-nums}
.sparklab i{font-style:normal;font-family:var(--mono);font-size:13px;color:var(--dim);margin-top:2px}
.rvals{display:grid;gap:10px}
.rv{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;font-size:15px}
.rvdot{width:10px;height:10px;border-radius:3px}
.rvlb{color:var(--text);font-size:15px;display:flex;flex-direction:column}
.rvsub{font-style:normal;font-family:var(--mono);font-size:13.5px;color:var(--dim);margin-left:0}
.rv b{font-family:var(--mono);font-size:17px;font-variant-numeric:tabular-nums}
.mchips{margin-bottom:4px}
.mstats{margin-top:6px;gap:12px}
.cmp{display:grid;gap:12px}
.cmp .row{display:grid;grid-template-columns:104px 1fr 92px;gap:12px;align-items:center}
.cmp .lb{font-family:var(--mono);font-size:13.5px;color:var(--muted)}
.cmp .tr{height:9px;border-radius:6px;background:rgba(255,255,255,.06);overflow:hidden}
.cmp .fl{height:100%;border-radius:6px}
.cmp .vl{font-family:var(--mono);font-size:13.5px;color:var(--text);text-align:right;font-variant-numeric:tabular-nums}
.cmp .vl b{color:var(--violet-hi)}
.mstats{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));margin-bottom:20px;align-items:stretch}
.mstat{
  position:relative;background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.015));
  border:1px solid var(--line2);border-radius:12px;padding:13px 13px 12px;overflow:hidden;
}
.mstat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c,var(--violet));opacity:.9}
.mstat::after{content:"";position:absolute;inset:auto -30% -60% -30%;height:100%;background:radial-gradient(50% 100% at 20% 100%,var(--c,var(--violet)),transparent 70%);opacity:.13}
.mstat{display:flex;flex-direction:column;justify-content:flex-start}
.mstat b{position:relative;z-index:1}
.mstat i{position:relative;z-index:1}
.mstat u{position:relative;z-index:1;display:block;text-decoration:none;font-family:var(--mono);font-size:13px;color:var(--dim);margin-top:6px}
.mstat b{display:block;font-family:var(--mono);font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}
.mstat i{display:block;font-style:normal;font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.sect{margin-top:22px}
.sect h4{
  margin:0 0 13px;display:flex;align-items:center;gap:11px;
  font-family:var(--h-family);font-size:var(--h2-size);font-weight:var(--h-weight);
  text-transform:var(--h-tt);letter-spacing:var(--h-track);color:var(--h-color);
}
.sect h4::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc)}
.sect h4::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.stbl{width:100%;border-collapse:collapse;font-size:14.5px}
.stbl th{position:static;background:none;border:0;border-bottom:1px solid var(--line2);padding:8px 9px;cursor:default;font-size:13.5px;color:var(--muted);letter-spacing:.05em}
.stbl td{padding:7px 9px;border-bottom:1px solid rgba(255,255,255,.055);white-space:nowrap}
.stbl tr:last-child td{border-bottom:0}
.stbl .r{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
/* то, по чему можно провалиться дальше */
/* nickcell 18.09.2026 (слово хозяина: «обводка это норм, а там именно чёрные уголки по
   всем углам»). linkTo ставит класс jump на переданный узел, и это НЕ всегда кусочек
   текста: в составе боя узел это сама ЯЧЕЙКА. Скругление на ячейке округляло её заливку
   при наведении, а подложка строки и карточки под ней квадратная, поэтому в четырёх углах
   проступал тёмный фон. Отступы из этого же правила вдобавок перебивали отступы ячеек.
   Поэтому оформление подсветки живёт только у не-ячеек; ячейка заливается ровно, во всю
   свою площадь. Скругление и отступы к td/th не возвращать.
   До этого было два захода по тому же поводу: jumpbox 18.09.2026 (убран ореол box-shadow
   0 0 0 4px, который скруглялся иначе, чем фон) и nocorners 18.09.2026 (полоска чередования
   строк перенесена с ячеек на строку, tbody tr:nth-child(even)). Оба нужны, но уголков не
   убирали: причина была в скруглении ячейки. */
/* jumpfix3 21.09.2026: у ячейки с ником фон перетекал плавно, а у соседних
   менялся разом, и строка загоралась в два приёма. Плавность у фона убрана. */
.jump{cursor:pointer;transition:color .13s}
.jump:not(td):not(th){border-radius:7px;padding:1px 5px;margin:0 -5px}
.jump:hover{color:#fff}
/* jumpfix 21.09.2026: класс .jump часто сидит на ЯЧЕЙКЕ таблицы, и заливка
   красила один столбец, а строка выглядела кривой (слово хозяина про
   Felton_Perez). Заливку оставили только там, где .jump это не ячейка,
   а в таблицах подсвечиваем всю строку. */
.jump:not(td):not(th):hover{background:color-mix(in srgb, var(--acc) 18%, transparent)}
/* jumpfix2 21.09.2026: подсветка строки должна быть ОДНА и одинаковая,
   откуда бы ни навели. Раньше на первой ячейке срабатывала своя, оранжевая,
   а на остальных общая белая, и строка подсвечивалась половинами. */
tbody tr:hover > td{background:color-mix(in srgb, var(--acc) 10%, transparent)}
.stbl tr.w td:first-child{box-shadow:inset 3px 0 0 var(--lime)}
.stbl tr.l td:first-child{box-shadow:inset 3px 0 0 var(--red)}
.stbl tr.w td,.stbl tr.l td{padding-left:12px}
.win{color:var(--lime);font-family:var(--mono);font-size:13.5px}
.los{color:var(--red);font-family:var(--mono);font-size:13.5px}
.mscroll{overflow-x:auto}
/* Бой это две стороны, и они должны читаться рядом, а не одна под другой. */
.sides{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
/* side-round 19.09.2026, три захода подряд (слово гостя):
   1) «строчки игроков, они какие то закругленные когда наводишь»: было
      overflow:hidden прямо на .side вместе с transition у tbody tr (общее
      правило на весь сайт), и это закругляло подсветку строки при наведении.
   2) «всё равно закругление снизу, прижимай подвал к низу зеркально»:
      пробовал убрать overflow:hidden и закруглить шапку и подвал ОТДЕЛЬНО
      своим radius (11px, на 1px меньше внешних 12px под рамку). Подвал
      прижал через flex-колонку и margin-top:auto, это осталось.
   3) «всё равно закругления, видны просветы фона»: отдельный radius на
      шапке и подвале давал суб-пиксельный шов на стыке с внешним radius
      .side (11 против 12 не всегда ложится ОДИН В ОДИН пиксель в пиксель),
      через щель было видно фон .side. Вернул overflow:hidden, это
      единственный способ обрезать ГАРАНТИРОВАННО той же кривой, без
      собственной арифметики радиусов. Саму причину скругления при
      наведении (transition + overflow:hidden на предке, пункт 1) убрал
      точечно: transition:none у строк именно этой таблицы. */
.side{display:flex;flex-direction:column;flex:1 1 auto;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.02)}
.side.won{border-color:color-mix(in srgb, var(--pos) 45%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--pos) 14%, transparent)}
.side tbody tr{transition:none}
.side .sh{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line2);background:rgba(255,255,255,.03)}
.side .sh b{font-size:16px;font-weight:700}
/* side-pts 19.09.2026: средний PTS состава прямо над именем семьи, крупно.
   Поправлено 20.09.2026 дважды: сперва подпись своей строкой над числом (а
   не рядом с ним в одну строку), потом «средний PTS из рамки вынеси» — сам
   блок переехал из шапки карточки (.side .sh) в .side-col, то есть уже НЕ
   внутри рамки .side, а над ней. */
.side-col{display:flex;flex-direction:column}
.side-pts-k{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}
.side-pts{font-family:var(--mono);font-size:19px;color:var(--text-2);margin-bottom:8px}
.side-pts.top{color:var(--lime)}
.side .sh em{font-style:normal;font-family:var(--mono);font-size:13.5px;letter-spacing:.05em;color:var(--muted)}
.side .sh .res{font-family:var(--mono);font-size:13.5px;padding:3px 9px;border-radius:999px}
.side.won .res{background:color-mix(in srgb, var(--pos) 16%, transparent);color:var(--pos)}
.side.lost .res{background:color-mix(in srgb, var(--neg) 14%, transparent);color:var(--neg)}
.side table{min-width:0;width:100%}
.side td{padding:7px 13px;border-bottom:1px solid rgba(255,255,255,.05);font-size:14.5px}
.side tr:last-child td{border-bottom:0}
.side tr.me td{background:color-mix(in srgb, var(--acc) 18%, transparent)}
.side .tot{display:flex;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--line2);font-family:var(--mono);font-size:13.5px;color:var(--muted);margin-top:auto}
.side .tot b{color:var(--text)}
tbody tr.clickable{cursor:pointer}
.note{color:var(--dim);font-size:13.5px;margin:16px 0 0}
.empty{padding:56px 16px;text-align:center;color:var(--dim);font-family:var(--mono);font-size:14.5px}
footer{border-top:1px solid var(--line2);margin-top:44px;padding:30px 0 46px}
.foot{display:grid;justify-items:center;gap:14px;text-align:center}
.foot-mark{display:flex;align-items:center;gap:11px}
.foot-mark img{width:52px;height:52px;display:block;opacity:.92;filter:hue-rotate(var(--logo-rot,0deg)) saturate(var(--logo-sat,1))}
.foot-mark b{font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.16em;color:var(--text-2)}
.foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px}
.foot-nav a{font-size:14.5px;color:var(--muted);text-decoration:none;transition:color .14s}
.foot-nav a:hover{color:var(--acc)}
.foot-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.foot-b{
  font-family:var(--mono);font-size:13px;color:var(--muted);cursor:pointer;
  background:color-mix(in srgb, var(--panel) 88%, transparent);
  border:1px solid var(--line2);border-radius:10px;padding:9px 15px;transition:.15s;
}
.foot-b:hover{color:var(--text);border-color:var(--acc)}
.foot-note{font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;color:var(--dim)}
/* Полоса прокрутки под тему: светлая системная резала глаз на чёрном. */
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--acc) 55%, var(--panel)) transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:rgba(255,255,255,.03);border-radius:8px}
::-webkit-scrollbar-thumb{
  background:color-mix(in srgb, var(--acc) 45%, var(--panel));
  border:2px solid transparent;background-clip:padding-box;border-radius:8px;
}
::-webkit-scrollbar-thumb:hover{background:var(--acc);background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}
.hidden{display:none !important}
/* Фоновые слои неподвижны во всех темах. */
.blob,.cells i,.scan,.radar i,.aurora i,.dust,.dust i,.floor,.sweep{animation:none!important}
.sweep{display:none!important}
.cells i{opacity:.34}

@media (prefers-reduced-motion:reduce){.blob,.pulse,.cells i,.scan,.radar i,.aurora i,.dust,.dust i,.floor,.sweep{animation:none}.sweep{display:none!important}.cells i{opacity:.28}html{scroll-behavior:auto}}
.dts{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.dts-sep{color:var(--dim);font-family:var(--mono)}
/* Даты не наследуют min-width 280px от .inp: иначе строка фильтров не влезает
   в одну линию рядом с кнопкой выбора сервера (14.09.2026). На телефоне ширину
   задаёт своё правило .dts .inp.dt с flex-basis. */
.inp.dt{padding:9px 11px;font-size:13.5px;color-scheme:dark;min-width:0;width:160px}
.dt-preset,.dt-clear{padding:8px 12px;font-size:13px}
.dt-note{margin:0 0 12px;color:var(--muted);font-size:14px}
.wasline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.ptsline{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin:2px 0 16px}
.ptsline .k{font-size:12px;color:var(--dim);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em}
.ptsline .pv{display:inline-flex;align-items:baseline;gap:6px;color:var(--text-2)}
.ptsline .pv b{font-family:var(--mono);font-size:16px;color:var(--text)}
.ptsline .pv i{font-style:normal;font-size:13px;color:var(--muted)}
.ptsline .pv.top b{color:var(--lime)}
.ptsline .sep{color:var(--dim)}
.chain{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0 4px}
.chain-k{font-size:12px;color:var(--dim);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-right:4px}
.cdot{width:22px;height:22px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.cdot.ca{background:color-mix(in srgb,var(--lime) 22%,transparent);color:var(--lime);border:1px solid color-mix(in srgb,var(--lime) 45%,transparent)}
.cdot.cb{background:color-mix(in srgb,var(--rose) 20%,transparent);color:var(--rose);border:1px solid color-mix(in srgb,var(--rose) 42%,transparent)}
.wask{font-size:12.5px;color:var(--dim);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em}
.waschip{border:1px solid var(--line);border-radius:99px;padding:3px 11px;font-size:13px;color:var(--text-2);background:var(--panel2)}
.dt-note b{color:var(--text)}
@media (max-width:700px){
  .logo-img,.logo-img img{width:36px;height:36px}
  .live b{display:none}
  th,td{padding:9px 11px}
  .vhead{padding-top:2px}
}
/* ── ровная шапка и безопасная зона на телефоне ───────────
   Заголовки таблиц липнут внутри своей прокрутки, а не к окну,
   поэтому отступ на высоту шапки им не нужен и только ломает вид. */
:root{--head-h:66px}
.wrap{padding-left:max(var(--pad),env(safe-area-inset-left));padding-right:max(var(--pad),env(safe-area-inset-right))}
th{top:0}
.stbl th{top:auto}
.modal{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.ldock{bottom:max(20px,env(safe-area-inset-bottom))}
footer{padding-bottom:calc(46px + env(safe-area-inset-bottom))}
@media (max-width:700px){
  /* заголовок раздела не должен липнуть к шапке */
  .vhead{padding:14px 0 12px;gap:10px}
  .vhead p{font-size:15px;line-height:1.5}
  /* панель фильтров в столбик: иначе поля расползаются по строкам */
  .bar{padding:12px 0 12px;gap:8px}
  .bar>.selwrap,.bar>#search{flex:1 1 100%;width:100%}
  .bar .sel,.bar .inp{width:100%;min-width:0}
  .dts{width:100%;gap:6px}
  .dts .inp.dt{flex:1 1 116px;min-width:0}
  .count{margin-left:0;width:100%;text-align:right}
  .pager{padding:14px 0 6px}
}
/* ══ МЕНЮ РАЗДЕЛОВ ═══════════════════════════════════════════
   Разделов стало больше, чем помещается в ряд, поэтому меню ушло влево.
   От 1600 px панель стоит целиком: группы, подписи, кнопки внизу.
   С 1280 до 1600 по умолчанию узкая полоса со значками, чтобы таблицы
   не теряли ширину; кнопка внизу разворачивает её, выбор помнится.
   Уже 1280 px сверху полоса с логотипом и названием раздела, а меню
   выезжает панелью. Цвета, фоны и рамки только из переменных темы. */
:root{--side-w:248px;--rail-w:76px}
.topbar{
  position:sticky;top:0;z-index:40;padding-top:env(safe-area-inset-top);
  background:color-mix(in srgb, var(--ink) 88%, transparent);
  -webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);
  border-bottom:1px solid var(--line2);
}
.topbar-in{display:flex;align-items:center;gap:14px;height:60px}
.topbar .logo{gap:11px;min-width:0}
.topbar .logo-mark{width:38px;height:38px}
.topbar-cur{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding-left:14px;border-left:1px solid var(--line);line-height:22px;
  font-family:var(--mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text);
}
.nbtn{
  flex:none;width:40px;height:40px;padding:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:11px;border:1px solid var(--line);
  background:color-mix(in srgb, var(--panel) 70%, transparent);color:var(--text-2);
  transition:background-color .15s,color .15s,border-color .15s;
}
.nbtn:hover{color:var(--text);border-color:color-mix(in srgb, var(--acc) 45%, var(--line));background:color-mix(in srgb, var(--acc) 12%, transparent)}
.nbtn svg{display:block}

.mnav{
  position:fixed;top:0;bottom:0;left:0;z-index:70;width:min(304px,86vw);height:100vh;height:100dvh;
  display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:var(--line) transparent;
  padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom) env(safe-area-inset-left);
  background:linear-gradient(180deg, color-mix(in srgb, var(--acc) 7%, transparent), transparent 260px), var(--ink2);
  border-right:1px solid var(--line);
  transform:translateX(-104%);visibility:hidden;
  transition:transform .3s cubic-bezier(.3,.8,.25,1),visibility 0s linear .3s;
}
html.nav-open .mnav{transform:none;visibility:visible;transition:transform .3s cubic-bezier(.3,.8,.25,1)}
.mnav-scrim{
  position:fixed;inset:0;z-index:65;background:color-mix(in srgb, var(--ink) 72%, transparent);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s linear .3s;
}
html.nav-open .mnav-scrim{opacity:1;visibility:visible;transition:opacity .3s}
html.nav-open,html.nav-open body{overflow:hidden}

.mnav-top{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;height:68px;padding:0 14px 0 18px}
.mnav .logo{gap:11px;min-width:0}
.mnav .logo-mark{width:40px;height:40px}
.mnav-fold{display:none}
.snav{flex:1 0 auto;padding:6px 12px 16px}
.sgrp + .sgrp{margin-top:16px}
.sgrp-h{
  display:flex;align-items:center;gap:10px;margin:0 0 6px;padding:0 12px;
  font-family:var(--mono);font-size:11px;line-height:18px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
}
.sgrp-h::after{content:"";flex:1;height:1px;background:var(--line2)}
.sgrp ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.sitem{
  position:relative;display:flex;align-items:center;gap:13px;height:40px;padding:0 12px;border-radius:10px;
  color:var(--text-2);text-decoration:none;font-size:14.5px;line-height:1;white-space:nowrap;
  transition:background-color .15s,color .15s;
}
.sitem .si{flex:none;width:20px;height:20px;color:var(--muted);transition:color .15s}
.sitem .sl{min-width:0;overflow:hidden;text-overflow:ellipsis;line-height:1.4}
.sitem:hover{color:var(--text);background:color-mix(in srgb, var(--text) 6%, transparent)}
.sitem:hover .si{color:var(--text-2)}
.sitem[aria-current="page"]{
  color:var(--text);font-weight:600;
  background:color-mix(in srgb, var(--acc) 15%, transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--acc) 28%, transparent);
}
.sitem[aria-current="page"] .si{color:var(--acc-hi)}
.sitem[aria-current="page"]::before{
  content:"";position:absolute;left:-12px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;
  background:var(--acc);box-shadow:0 0 12px color-mix(in srgb, var(--acc) 55%, transparent);
}
.sitem:focus-visible{outline:2px solid var(--acc);outline-offset:-2px;border-radius:10px}
/* Пункт меню «Голосование» слегка мерцает, чтобы заметили (16.09.2026,
   слово гостя). Значок дышит цветом акцента, поверх пункта пробегает мягкая
   полоса блика. Гаснет на активной странице (там ::before и так занимает
   левый край, да и подсвечивать нечего — гость уже тут) и без overflow
   не нужен, что бережёт индикатор активной страницы от обрезки. Только
   переменные темы. */
.sitem.vote-glow:not([aria-current="page"]){position:relative;overflow:hidden}
/* openall 17.09.2026: «Набор в семьи» пока только для администрации */
#recruitLi[hidden]{display:none}
.sitem.vote-glow:not([aria-current="page"]) .si{animation:vote-glow-ic 2.6s ease-in-out infinite}
.sitem.vote-glow:not([aria-current="page"])::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,transparent 35%,color-mix(in srgb, var(--acc) 30%, transparent) 50%,transparent 65%);
  background-size:220% 100%;background-position:220% 0;
  animation:vote-glow-sh 3.4s ease-in-out infinite;
}
@keyframes vote-glow-ic{0%,100%{color:var(--muted)}50%{color:var(--acc-hi);filter:drop-shadow(0 0 4px color-mix(in srgb, var(--acc) 55%, transparent))}}
@keyframes vote-glow-sh{0%,10%{background-position:220% 0}60%,100%{background-position:-40% 0}}
@media (prefers-reduced-motion:reduce){
  .sitem.vote-glow .si{animation:none}
  .sitem.vote-glow::after{animation:none;display:none}
}
.mnav-foot{flex:none;display:flex;align-items:center;gap:6px;padding:12px 12px 14px;border-top:1px solid var(--line2)}
.mnav-foot .hact{margin-left:0}
.mnav-tip{
  position:fixed;left:0;top:0;z-index:85;pointer-events:none;white-space:nowrap;
  padding:6px 11px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:var(--text);
  font-size:13.5px;line-height:1.2;box-shadow:var(--shadow);
  opacity:0;visibility:hidden;transform:translate(-4px,-50%);
  transition:opacity .12s,transform .12s,visibility 0s linear .12s;
}
.mnav-tip.on{opacity:1;visibility:visible;transform:translate(0,-50%);transition:opacity .12s,transform .12s}
/* ── вход через Discord (14.09.2026) ──────────────────────────
   Блок под логотипом (до 14.09.2026 был внизу), в узкой полосе только значок, на 600…1279
   ещё кнопка справа в верхней полосе. Меню учётной записи всплывает рядом с
   кнопкой. Цвета из переменных темы, кроме фирменного цвета значка Discord. */
.acct{flex:none;padding:10px 12px 0;border-top:1px solid var(--line2)}
.acct:empty{display:none}
.mnav .acct + .mnav-foot{border-top:0;padding-top:8px}
.acct-in,.acct-me{
  display:flex;align-items:center;gap:11px;width:100%;height:42px;margin:0;padding:0 12px 0 11px;
  border-radius:10px;border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 60%, transparent);
  color:var(--text-2);font:inherit;font-size:14.5px;line-height:1;text-decoration:none;cursor:pointer;
  transition:background-color .15s,color .15s,border-color .15s;
}
.acct-in:hover,.acct-me:hover,.acct-me[aria-expanded="true"]{color:var(--text);border-color:color-mix(in srgb, var(--acc) 45%, var(--line));background:color-mix(in srgb, var(--acc) 12%, transparent)}
.acct-in:focus-visible,.acct-me:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.acct-in svg{flex:none;width:20px;height:20px}
.acct-in .acct-d{color:#5865F2}
.acct-in .acct-u{display:none}
.acct-me img{flex:none;width:26px;height:26px;border-radius:50%;background:var(--panel2)}
.acct-me img:not([src]){visibility:hidden}
.acct-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;line-height:1.4}
.acct-me .acct-t{flex:1}
.acct-c{flex:none;display:block;width:16px;height:16px;color:var(--muted)}
html.nav-rail .acct{display:flex;justify-content:center;padding:10px 0 0}
html.nav-rail .acct-in,html.nav-rail .acct-me{width:44px;height:44px;padding:0;justify-content:center}
html.nav-rail .acct .acct-t,html.nav-rail .acct .acct-c,html.nav-rail .acct .acct-d{display:none}
html.nav-rail .acct .acct-u{display:block}
.acct-top{display:none}
@media (min-width:600px) and (max-width:1279.98px){
  .topbar .acct-top{display:block;flex:none;margin-left:auto;padding:0;border-top:0}
  .topbar .acct-top + .hact{margin-left:0}
  .acct-top .acct-in,.acct-top .acct-me{width:40px;height:40px;padding:0;justify-content:center;border-radius:11px}
  .acct-top .acct-t,.acct-top .acct-c,.acct-top .acct-d{display:none}
  .acct-top .acct-u{display:block}
}
.acct-pop{
  position:fixed;left:0;top:0;z-index:90;display:none;min-width:230px;max-width:min(300px, calc(100vw - 24px));
  padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);
}
.acct-pop.on{display:block}
.acct-pop .ah{display:flex;align-items:center;gap:10px;padding:8px 10px 10px;margin-bottom:4px;border-bottom:1px solid var(--line2)}
.acct-pop .ah img{flex:none;width:34px;height:34px;border-radius:50%;background:var(--panel2)}
.acct-pop .ah img:not([src]){visibility:hidden}
.acct-pop .ah div{min-width:0}
.acct-pop .ah b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:14.5px;font-weight:600}
.acct-pop .ah span{display:block;margin-top:3px;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.acct-pop a{display:flex;align-items:center;gap:10px;height:38px;padding:0 10px;border-radius:8px;color:var(--text-2);text-decoration:none;font-size:14px}
.acct-pop a:hover,.acct-pop a:focus-visible{color:var(--text);background:color-mix(in srgb, var(--acc) 14%, transparent);outline:none}
.acct-pop a svg{flex:none;width:17px;height:17px;color:var(--muted)}
@media (pointer:coarse){.acct-in,.acct-me{height:44px}.acct-pop a{height:44px}}
@media (pointer:coarse){.sitem{height:44px}}
/* Телефон: кнопки уходят в низ панели и получают подписи, одних значков мало. */
@media (max-width:599.98px){
  .topbar-in{gap:11px}
  .topbar-cur{padding-left:11px}
  .mnav-foot{display:block;padding:10px 12px 16px}
  .mnav-foot .hact,.mnav-foot .hact .grp{display:grid;gap:2px}
  .mnav-foot .ibtn{
    display:grid;grid-template-columns:22px 1fr;justify-items:center;column-gap:13px;
    width:100%;height:42px;border-radius:10px;padding:0 12px 0 11px;color:var(--text-2);
  }
  .mnav-foot .ibtn::after{content:attr(aria-label);justify-self:start;font-family:var(--sans);font-size:14.5px;font-weight:400;color:var(--text-2)}
  .mnav-foot .ibtn:hover::after{color:var(--text)}
  .mnav-foot .ibtn.dsc:hover{background:color-mix(in srgb, var(--text) 6%, transparent)}
}
@media (min-width:600px) and (max-width:1279.98px){.mnav-foot{display:none}}
@media (min-width:1280px){
  .topbar{display:none}
  body{padding-left:var(--side-w)}
  #main{padding-top:14px}
  .mnav{
    z-index:40;width:var(--side-w);overflow:hidden;transform:none;visibility:visible;transition:none;
    background:linear-gradient(180deg, color-mix(in srgb, var(--acc) 6%, transparent), transparent 260px), color-mix(in srgb, var(--ink) 84%, transparent);
    -webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);
    border-right-color:var(--line2);
  }
  .mnav-x,.mnav-scrim{display:none}
  .mnav-fold{display:inline-flex;margin-left:auto}
  .snav{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
  .mnav-foot .hact{gap:2px}
  .snav.more{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 36px),transparent)}
  html.nav-rail{--side-w:var(--rail-w)}
  html.nav-rail .mnav-top{justify-content:center;padding:0}
  html.nav-rail .snav{padding:6px 10px 12px}
  html.nav-rail .sgrp + .sgrp{margin-top:10px;padding-top:10px;border-top:1px solid var(--line2)}
  html.nav-rail .sgrp-h,html.nav-rail .sitem .sl,html.nav-rail .mnav .wordmark{
    position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;
    overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
  }
  html.nav-rail .sitem{width:100%;height:42px;padding:0;justify-content:center}
  html.nav-rail .sitem[aria-current="page"]::before{left:-10px}
  html.nav-rail .mnav-foot{flex-direction:column;padding:10px 0 12px;gap:6px}
  html.nav-rail .mnav-foot .hact{display:grid;grid-template-columns:repeat(2,32px);gap:4px;justify-content:center}
  html.nav-rail .mnav-foot .hact .grp{display:contents}
  html.nav-rail .mnav-fold{margin:0}
  html.nav-rail .mnav-fold svg{transform:scaleX(-1)}
}
/* ── menumove 14.09.2026: вход под логотипом, действия подписями в «Ещё» ──
   Раньше внизу был ряд значков без подписей и второй значок Discord у входа.
   Теперь «Как считаются рейтинги», «Оформление», «Обратная связь» и
   Discord-сервер это обычные пункты меню (кнопки, у ссылки стрелка наружу),
   вход сразу под логотипом с значком человека. Кнопка сворачивания стоит
   справа от логотипа, в узкой полосе внизу: переносит navLayout. */
button.sitem{width:100%;margin:0;border:0;background:none;font:inherit;font-size:14.5px;line-height:1;text-align:left;cursor:pointer}
.sitem .sext{flex:none;width:14px;height:14px;margin-left:auto;color:var(--dim)}
.sitem.dsc:hover .si{color:#5865F2}
.mnav .acct{padding:0 12px 10px;border-top:0}
.mnav .acct-in .acct-d{display:none}
.mnav .acct-in .acct-u{display:block;color:var(--muted)}
.mnav .acct-in:hover .acct-u{color:var(--text-2)}
@media (min-width:1280px){
  .mnav-top .mnav-fold{flex:none}
  html.nav-rail .mnav-top .mnav-fold{display:none}
  html.nav-rail .sitem .sext{display:none}
  html.nav-rail .mnav .acct{padding:0 0 8px}
  html.nav-rail .mnav-foot{padding:8px 0 10px}
}
/* Экран до 1000 px в высоту (1920×1080 с панелями браузера): пункты чуть ниже, чтобы всё меню вставало целиком. */
@media (min-width:1280px) and (max-height:1000px){
  .mnav-top{height:62px}
  .sitem,html.nav-rail .sitem{height:36px}
  .sgrp + .sgrp{margin-top:12px}
  html.nav-rail .sgrp + .sgrp{margin-top:7px;padding-top:7px}
}
@media (min-width:1280px) and (max-height:800px){
  .mnav .acct-in,.mnav .acct-me{height:36px}
  .mnav .acct{padding-bottom:6px}
}
/* g5theme 14.09.2026: эмблема круглая, с надписью внутри и своими цветами,
   поэтому без фильтров темы и чуть крупнее; STATS в надписи цветом акцента. */
.wm-s{font-style:normal;color:var(--acc)}
:is(.logo-mark,.foot-mark img){filter:none!important}
.logo:hover .logo-mark{filter:brightness(1.12)!important}
.mnav .logo-mark{width:46px;height:46px}
.topbar .logo-mark{width:42px;height:42px}
/* Невысокий экран ноутбука: всё меню должно встать без прокрутки. */
@media (min-width:1280px) and (max-height:800px){
  .mnav-top{height:60px}
  .sitem,html.nav-rail .sitem{height:34px}
  .sgrp + .sgrp{margin-top:10px}
  html.nav-rail .sgrp + .sgrp{margin-top:5px;padding-top:5px}
  .sgrp-h{margin-bottom:3px}
  .mnav-foot{padding-top:8px;padding-bottom:10px}
}
/* 1366×768 и похожие: окно ниже 700 px. Если меню и так не влезет, низ
   списка гаснет, чтобы было видно, что оно листается. */
@media (min-width:1280px) and (max-height:700px){
  .mnav-top{height:54px}
  .mnav .logo-mark{width:34px;height:34px}
  .sitem,html.nav-rail .sitem{height:32px}
  .snav,html.nav-rail .snav{padding-top:2px;padding-bottom:8px}
  .sgrp + .sgrp{margin-top:8px}
  html.nav-rail .sgrp + .sgrp{margin-top:4px;padding-top:4px}
  .sgrp-h{line-height:16px;margin-bottom:2px}
  .mnav-foot{padding-top:6px;padding-bottom:8px}
  html.nav-rail .mnav-foot{gap:4px;padding:6px 0 8px}
  html.nav-rail .mnav-foot .hact{gap:2px}
}
/* menumove 14.09.2026: низкие экраны после прибавки четырёх пунктов. */
@media (min-width:1280px) and (max-height:800px){
  .sitem,html.nav-rail .sitem{height:32px}
  .sgrp ul{gap:1px}
  .sgrp + .sgrp{margin-top:8px}
  .snav{padding-bottom:4px}
  html.nav-rail .sgrp + .sgrp{margin-top:4px;padding-top:4px}
  html.nav-rail .mnav .acct{padding-bottom:4px}
  html.nav-rail .mnav-foot{padding:4px 0 6px}
}
@media (min-width:1280px) and (max-height:700px){
  .sitem,html.nav-rail .sitem{height:30px}
  .sgrp + .sgrp{margin-top:6px}
  html.nav-rail .sgrp + .sgrp{margin-top:3px;padding-top:3px}
}
html.nav-rail .snav{scrollbar-width:none}
html.nav-rail .snav::-webkit-scrollbar{display:none}
/* ── menuicons 14.09.2026: действия снова значками внизу панели ──
   Слово хозяина «верни это значками». Ряд .fact из четырёх .fbtn (Discord,
   Оформление, Обратная связь, Как считаются рейтинги), подпись в title и
   aria-label. В узкой полосе сетка 2×2 и под ней кнопка «развернуть». */
.mnav .mnav-foot{display:block;flex:none;padding:8px 12px 12px;border-top:1px solid var(--line2)}
.fact{display:flex;gap:4px}
.fbtn{
  flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;height:38px;margin:0;padding:0;
  border:0;border-radius:10px;background:none;color:var(--muted);cursor:pointer;text-decoration:none;
  transition:background-color .15s,color .15s;
}
.fbtn svg{display:block;width:20px;height:20px}
.fbtn:hover{color:var(--text);background:color-mix(in srgb, var(--text) 6%, transparent)}
.fbtn.dsc:hover{color:#5865F2}
.fbtn:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
@media (pointer:coarse){.fbtn{height:44px}}
@media (min-width:1280px){
  html.nav-rail .mnav .mnav-foot{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 0 10px}
  html.nav-rail .fact{display:grid;grid-template-columns:repeat(2,32px);gap:4px}
  html.nav-rail .fbtn{width:32px;height:32px;border-radius:9px}
}
@media (min-width:1280px) and (max-height:800px){
  .mnav .mnav-foot{padding:6px 12px 8px}
  .fbtn{height:34px}
  html.nav-rail .mnav .mnav-foot{gap:4px;padding:5px 0 6px}
}
/* foldbottom 14.09.2026: «свернуть» и «развернуть» в одном месте, в нижнем ряду справа. */
.mnav .mnav-foot{display:flex;align-items:center;gap:4px}
.mnav-foot .fact{flex:1 1 auto;min-width:0}
@media (max-width:1279.98px){.mnav-foot .mnav-fold{display:none}}
@media (min-width:1280px){
  .mnav-foot .mnav-fold{flex:none;width:36px;height:38px;margin:0;border-radius:10px}
  html.nav-rail .mnav-foot .mnav-fold{width:32px;height:32px;border-radius:9px}
}
@media (min-width:1280px) and (max-height:800px){.mnav-foot .mnav-fold{height:34px}}
@media (prefers-reduced-motion:reduce){
  .mnav,.mnav-scrim,.mnav-tip,.sitem,.sitem .si,.nbtn{transition:none!important}
}
@media print{
  .topbar,.mnav,.mnav-scrim,.mnav-tip{display:none!important}
  body{padding-left:0!important}
}
/* ══ СТРАНИЦЫ ИГРОКА, СЕМЬИ, СЕРВЕРА И БОЯ ═══════════════════
   Раньше это были окна, теперь страницы со своими адресами (13.09.2026).
   Шапка страницы носит класс mhead: код карточек ищет .mhead h2 и
   .mhead .sub и пишет туда как раньше. Строка вкладок липнет под верхней
   полосой (на широком экране её нет, --head-h там 0). Цвета только из
   переменных темы; металлы наград общие на все темы, это их смысл. */
html{
  --au:#E9B949;--au-hi:#FFE6A6;--au-lo:#8A6216;
  --ag:#C2CBD5;--ag-hi:#F6F8FB;--ag-lo:#6B7785;
  --cu:#D58C57;--cu-hi:#F5C59F;--cu-lo:#7B4521;
}
.ent{padding-top:2px}
.ent-bar{display:flex;align-items:center;gap:12px;margin:0 0 12px;min-height:36px}
.ent-crumbs{flex:1 1 auto;min-width:0}
.ent-crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;row-gap:4px;font-family:var(--mono);font-size:12.5px;letter-spacing:.04em;color:var(--muted)}
.ent-crumbs li{display:inline-flex;align-items:center;min-width:0;max-width:100%}
.ent-crumbs li+li::before{content:"›";flex:none;margin:0 9px;color:var(--dim)}
.ent-crumbs a{color:var(--text-2);text-decoration:none;border-radius:4px;white-space:nowrap}
.ent-crumbs a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.ent-crumbs a:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.ent-crumbs span[aria-current]{color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ent-back{
  flex:none;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:10px;cursor:pointer;
  border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 72%, transparent);color:var(--text-2);
  font-family:var(--mono);font-size:13px;white-space:nowrap;transition:border-color .15s,color .15s,background-color .15s;
}
.ent-back:hover{color:var(--text);border-color:color-mix(in srgb, var(--acc) 50%, var(--line));background:color-mix(in srgb, var(--acc) 12%, transparent)}
.ent-back:focus-visible{outline:2px solid var(--acc);outline-offset:2px}

.ent-head.mhead{position:relative;top:auto;z-index:1;padding:22px 24px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);overflow:hidden}
.ent-top{position:relative;z-index:1;display:flex;align-items:stretch;gap:16px}
.ent-tier{flex:none;width:5px;border-radius:3px;min-height:48px}
.ent-id{flex:1 1 auto;min-width:0}
.ent-head h2.ent-kick,.ent-404 h2.ent-kick{
  margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;line-height:1.5;
  font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.ent-head .ent-kick .lvl{font-size:12.5px;letter-spacing:.04em;text-transform:none;padding:3px 10px}
.ent-name{
  margin:6px 0 0;font-family:var(--champ-family);font-weight:var(--champ-weight);text-transform:var(--champ-tt);
  letter-spacing:var(--champ-track);font-size:clamp(25px,3.1vw,40px);line-height:1.14;color:var(--text);overflow-wrap:anywhere;
}
.ent-name .vs{display:inline-block;margin:0 .5em;font-family:var(--mono);font-size:.4em;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);vertical-align:.35em}
.ent-name img{display:inline-block;width:.78em;height:.78em;margin-right:.32em;vertical-align:-.04em}
.ent-head .sub{position:relative;z-index:1;margin-top:8px}
.ent-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
.ent-tag{
  display:inline-flex;align-items:center;gap:7px;min-height:30px;max-width:100%;padding:3px 12px;border-radius:999px;
  border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 72%, transparent);
  font-family:var(--mono);font-size:13px;color:var(--text-2);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ent-tag i{font-style:normal;color:var(--muted)}
.ent-tag img{flex:none;width:16px;height:16px;display:block}
a.ent-tag{transition:border-color .15s,color .15s,background-color .15s}
a.ent-tag:hover{color:var(--text);border-color:color-mix(in srgb, var(--acc) 55%, var(--line));background:color-mix(in srgb, var(--acc) 12%, transparent)}
a.ent-tag:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.ent-tag.soft{border-style:dashed;color:var(--muted)}
.ent-facts{position:relative;z-index:1;margin-top:18px;display:grid;gap:12px}
.ent-facts:empty{display:none}
.ent-facts > *{margin:0!important}

.ent-tabs{
  position:sticky;top:var(--head-h,0px);z-index:30;display:flex;gap:4px;margin:14px 0 0;padding:5px;
  overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;
  border:1px solid var(--line2);border-radius:14px;background:color-mix(in srgb, var(--ink) 88%, transparent);
  -webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);
}
.ent-tabs::-webkit-scrollbar{display:none}
.etab{
  flex:none;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 15px;border-radius:10px;
  color:var(--text-2);text-decoration:none;font-size:14.5px;line-height:1;white-space:nowrap;transition:background-color .15s,color .15s;
}
.etab:hover{color:var(--text);background:color-mix(in srgb, var(--text) 6%, transparent)}
.etab[aria-current="page"]{color:var(--text);font-weight:600;background:color-mix(in srgb, var(--acc) 15%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--acc) 30%, transparent)}
.etab:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.etab .n{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--muted);padding:2px 7px;border-radius:999px;background:color-mix(in srgb, var(--text) 8%, transparent)}
.etab[aria-current="page"] .n{color:var(--text)}
.ent-panel{display:flex;flex-direction:column;padding-top:4px}
.ent-panel > *{min-width:0}
.ent-panel > .sect{margin-top:26px}
.ent-panel > .mstats,.ent-panel > .dt-note,.ent-panel > .nc-line,.ent-panel > .ptsline{margin-top:18px}
.ent-panel > .sides{margin-top:20px}
.ent-panel > .empty{padding:48px 16px}

.ent-404{padding:26px 0 10px;max-width:760px}
.ent-404 .ent-name{margin:0 0 10px}
.ent-404 p{margin:0 0 16px;color:var(--text-2);line-height:1.6}
.ent-404 .inp{width:100%;min-width:0}
.ent-find{display:grid;gap:6px;margin-top:12px}
.ent-find a{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 14px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);color:var(--text);text-decoration:none}
.ent-find a:hover{border-color:color-mix(in srgb, var(--acc) 50%, var(--line))}
.ent-find a:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.ent-find b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.ent-find em{margin-left:auto;flex:none;font-style:normal;font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.ent-go{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}

/* ── ссылки на страницы в таблицах и списках ── */
a.elink{color:inherit;text-decoration:none;border-radius:3px}
a.elink:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb, var(--acc) 70%, transparent)}
a.elink:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
a.chip.elink{transition:border-color .15s,color .15s}
a.chip.elink:hover{color:var(--text);text-decoration:none;border-color:color-mix(in srgb, var(--acc) 55%, var(--line))}
a.elink-box{text-decoration:none;color:inherit}
a.elink-box.tier-card{color:var(--text)}
a.elink-box.scard{display:block}
a.elink-box.arch-btn{display:inline-block}
a.elink-box:focus-visible{outline:2px solid var(--acc);outline-offset:3px}

/* ── награды: вариант 01 из демо, медаль на ленте ──
   Тир месяца гладкий диск в цветах темы, место в сезоне металл с зубчатым
   краем. MVP корона, KEY звезда, обе в цветах темы. */
.aw{--hi:color-mix(in srgb, var(--tc) 45%, var(--text));--lo:color-mix(in srgb, var(--tc) 48%, var(--ink))}
/* ★ Классы с приставкой aw-: голый .t3 уже занят карточками тройки лидеров на главной. */
.aw.aw-t1{--tc:var(--t1)}
.aw.aw-t2{--tc:var(--t2)}
.aw.aw-t3{--tc:var(--t3)}
.aw.aw-s1{--tc:var(--au);--hi:var(--au-hi);--lo:var(--au-lo)}
.aw.aw-s2{--tc:var(--ag);--hi:var(--ag-hi);--lo:var(--ag-lo)}
.aw.aw-s3{--tc:var(--cu);--hi:var(--cu-hi);--lo:var(--cu-lo)}
.aw.aw-mvp{--tc:var(--acc-hi)}
.aw.aw-key{--tc:var(--t2)}
.award-chip.aw{display:inline-flex;flex-direction:row;align-items:center}
/* Мелкие подписи под числами на страницах: --dim в части тем бледнее нормы. */
.ent-facts .mstat u,.ent-panel .mstat u{color:var(--muted)}
.aw svg{display:block;flex:none;overflow:visible}
.aw-num{font-family:var(--mono);font-weight:800}
.award-chip.aw{
  gap:9px;padding:5px 13px 5px 7px;border-radius:12px;cursor:help;
  border:1px solid color-mix(in srgb, var(--tc) 32%, var(--line));background:color-mix(in srgb, var(--tc) 7%, var(--panel));
  color:var(--text-2);font-family:var(--sans);transition:border-color .15s;
}
.award-chip.aw:hover{border-color:color-mix(in srgb, var(--tc) 70%, var(--line))}
.award-chip.aw:focus-visible{outline:2px solid var(--tc);outline-offset:2px}
.aw .lt{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.aw .lt b{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--tc);white-space:nowrap}
.aw .lt i{margin-top:2px;font-style:normal;font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}
/* ── медали наград (13.09.2026) ──
   Металл фиксированный, не из темы. Форма задаётся clip-path, объём тремя
   слоями: тёмный край (rim), фаска (::before) и лицо с бликом (::after).
   Надпись тёмная по металлу, лёгкая светлая тень даёт чеканку. */
.md{position:relative;display:inline-block;flex:none;width:var(--md);height:calc(var(--md) * 1.3);filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.55))}
.md-sm{--md:62px}
.md-lg{--md:104px}
.md-gold{--m:#E8B23A;--m-hi:#FFE9A8;--m-lo:#6E4C0C;--m-lo2:#B5821B;--m-ink:#3A2703}
.md-silver{--m:#C6CFD9;--m-hi:#F8FAFC;--m-lo:#56616E;--m-lo2:#8F9BA8;--m-ink:#1C2530}
.md-bronze{--m:#D38D58;--m-hi:#F8CFAB;--m-lo:#5E3014;--m-lo2:#A5602F;--m-ink:#2E1407}
/* Рекорд урона за месяц: один в месяц, без мест 1/2/3, поэтому не металл
   тира/PTS, а свой фиксированный цвет (огонь), форма звезда (13.09.2026). */
.md-ember{--m:#E8203F;--m-hi:#FF9CAE;--m-lo:#3B0313;--m-lo2:#8F0F28;--m-ink:#330008}
.md-c-gold{--tc:#E8B23A}
.md-c-silver{--tc:#C6CFD9}
.md-c-bronze{--tc:#D38D58}
.md-c-ember{--tc:#FF2E52}
.md-rim{position:absolute;left:0;right:0;bottom:0;height:var(--md);background:linear-gradient(150deg,var(--m-lo2),var(--m-lo) 60%,var(--m-lo))}
.md-face,.md-face::before,.md-face::after{position:absolute;display:block}
.md-face{inset:0}
.md-face::before{content:"";inset:6%;background:linear-gradient(150deg,var(--m-lo2),var(--m-hi) 55%,var(--m-lo2))}
.md-face::after{content:"";inset:11%;background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.6),rgba(255,255,255,0) 40%),linear-gradient(165deg,var(--m-hi) 0%,var(--m) 34%,var(--m) 70%,var(--m-lo2) 100%)}
.md-circ .md-rim,.md-circ .md-face::before,.md-circ .md-face::after{clip-path:circle(50% at 50% 50%)}
.md-oct .md-rim,.md-oct .md-face::before,.md-oct .md-face::after{clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%)}
.md-hex{width:calc(var(--md) * .92);height:var(--md)}
.md-hex .md-rim{top:0;height:auto}
.md-hex .md-rim,.md-hex .md-face::before,.md-hex .md-face::after{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.md-hex .md-face::before{inset:5% 6%}
.md-hex .md-face::after{inset:10% 11%}
/* Восьмиконечная звезда: та же трёхслойная выпуклость, что у остальных
   форм, только клип другой и своё лёгкое свечение в цвет медали. */
.md-star{width:var(--md);height:var(--md);filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.55)) drop-shadow(0 0 9px color-mix(in srgb, var(--tc) 75%, transparent))}
.md-star .md-rim{top:0;height:auto}
.md-star .md-rim,.md-star .md-face::before,.md-star .md-face::after{clip-path:polygon(50% 2%,63% 18.6%,83.9% 16.1%,81.4% 37%,98% 50%,81.4% 63%,83.9% 83.9%,63% 81.4%,50% 98%,37% 81.4%,16.1% 83.9%,18.6% 63%,2% 50%,18.6% 37%,16.1% 16.1%,37% 18.6%)}
.md-star .md-face::before{inset:5% 5%}
.md-star .md-face::after{inset:10% 10%}
.md-star .md-txt{top:0;height:auto}
/* Лента: две полосы в цвете темы, медаль висит под ними. */
.md-rib{position:absolute;left:50%;top:0;width:calc(var(--md) * .62);height:calc(var(--md) * .42);transform:translateX(-50%)}
.md-rib i{position:absolute;top:0;bottom:0;width:58%}
.md-rib i:first-child{left:0;background:color-mix(in srgb, var(--acc) 70%, var(--ink));clip-path:polygon(0 0,62% 0,100% 100%,38% 100%)}
.md-rib i:last-child{right:0;background:color-mix(in srgb, var(--acc) 42%, var(--ink));clip-path:polygon(38% 0,100% 0,62% 100%,0 100%)}
.md-txt{position:absolute;left:0;right:0;bottom:0;height:var(--md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  font-family:var(--mono);color:var(--m-ink);text-shadow:0 1px 0 rgba(255,255,255,.38);line-height:1;text-align:center;pointer-events:none}
.md-hex .md-txt{top:0;height:auto}
.md-txt b{font-weight:800;font-size:calc(var(--md) * .165);letter-spacing:-.01em;text-transform:lowercase}
.md-txt i{font-style:normal;font-weight:700;font-size:calc(var(--md) * .15)}
/* Медаль на обзоре: без плашки, подпись под медалью. */
.award-chip.aw.md-chip{flex-direction:column;align-items:center;gap:5px;padding:4px 6px 2px;border:0;border-radius:12px;background:transparent}
.award-chip.aw.md-chip:hover,.award-chip.aw.md-chip:focus-visible{background:color-mix(in srgb, var(--text) 6%, transparent)}
.md-cap{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--text-2);white-space:nowrap}
/* Топ проекта заметнее топа сервера: та же шестигранная медаль, но крупнее
   и со свечением в цвет металла (13.09.2026, по просьбе выделить проектную).
   Класс .md-proj общий: на карточке игрока это .md-chip (сжатый ряд, sm),
   во вкладке «Награды» это .md-item (крупный список, lg) — оба сюда попадают. */
.md-proj .md-sm{--md:78px}
.md-proj .md{filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.55)) drop-shadow(0 0 9px color-mix(in srgb, var(--tc) 70%, transparent))}
.award-chip.aw.md-chip.md-proj .md-cap{color:var(--text);font-weight:800}
.awards-row:has(.md-chip){align-items:flex-end}
/* ★ Надпись медали всегда своими чернилами и своим размером: общие правила
   гостя (.award-chip b красит в --tc, то есть в сам металл) и подписи карточек
   иначе перекрашивают её и медаль становится нечитаемой. */
span.md .md-txt b,span.md .md-txt i{color:var(--m-ink);margin:0;display:block;font-family:var(--mono);line-height:1}
span.md .md-txt b{font-weight:800;font-size:calc(var(--md) * .165)}
span.md .md-txt i{font-style:normal;font-weight:700;font-size:calc(var(--md) * .15)}
/* Вкладка «Награды»: крупная медаль, подпись и пояснение под ней. */
.aw-item.md-item{flex-direction:column;align-items:center;text-align:center;gap:8px;padding:16px 16px 18px;border-color:var(--line);background:color-mix(in srgb, var(--ink) 60%, transparent)}
.aw-item.md-item .aw-tx b{color:var(--text);font-family:var(--mono);font-size:15px}
.aw-item.md-item .aw-tx i{color:var(--text-2)}
.aw-item.md-item .aw-tx p{max-width:32ch}
/* ★ Медали в карточках вкладки «Награды» на одной линии: место под медаль одной
   высоты (медаль на ленте: 104px * 1.3), медаль прижата к низу. Без этого
   шестигранник без ленты стоял на 31px выше соседей, а с ним и подписи.
   MVP/KEY здесь той же карточкой: крупная медаль с лентой из обзора (14.09.2026). */
.aw-item.md-item .aw-ic{display:flex;align-items:flex-end;justify-content:center;height:136px}
.aw-item.md-item .aw-ic .award-chip.aw.medal-badge{width:104px;padding:36px 0 4px;cursor:default}
.aw-item.md-item .aw-ic .medal-ribbon{border-left-width:22px;border-right-width:22px;border-top-width:44px}
.aw-item.md-item .aw-ic .medal-disc{width:96px;height:96px;border-width:3px;gap:3px}
/* .aw-item b и .aw-item i иначе красят надпись диска в металл и сдвигают её */
.aw-item.md-item .aw-ic .medal-disc b,.aw-item.md-item .aw-ic .medal-disc i{display:block;margin:0;color:var(--ink);font-family:var(--mono);font-weight:800;line-height:1}
.aw-item.md-item .aw-ic .medal-disc b{font-size:14px;letter-spacing:.05em}
.aw-item.md-item .aw-ic .medal-disc i{font-size:26px;font-style:normal;font-variant-numeric:tabular-nums}
.aw-list{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.aw-item{
  display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--r);
  border:1px solid color-mix(in srgb, var(--tc) 26%, var(--line));
  background:linear-gradient(180deg,color-mix(in srgb, var(--tc) 8%, transparent),transparent 70%),var(--panel);
}
.aw-item .aw-tx{min-width:0}
.aw-item b{display:block;font-family:var(--mono);font-size:15px;font-weight:700;color:var(--tc)}
.aw-item i{display:block;margin-top:2px;font-style:normal;font-family:var(--mono);font-size:12.5px;color:var(--text-2)}
.aw-item p{margin:6px 0 0;font-size:13.5px;line-height:1.45;color:var(--muted)}
.aw-tip{
  position:fixed;left:0;top:0;z-index:100;max-width:300px;pointer-events:none;opacity:0;transform:translateY(4px);
  transition:opacity .12s,transform .12s;background:var(--panel2);border:1px solid color-mix(in srgb, var(--tipc,var(--acc)) 55%, var(--line));
  border-radius:11px;box-shadow:var(--shadow);padding:9px 12px 10px;font-size:13px;line-height:1.45;color:var(--text-2);
}
.aw-tip.on{opacity:1;transform:none}
.aw-tip em{display:block;margin-bottom:3px;font-style:normal;font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.aw-tip b{display:block;margin-bottom:2px;color:var(--text);font-size:14px}
/* ── подложки блоков и водяные знаки вкладок (13.09.2026, по отзыву хозяина) ──
   Каждый раздел лежит на еле видной панели из цветов темы: заголовок, таблица,
   график, кнопки и пояснение внутри. Размытие под панелью, чтобы живой фон тем
   (пол, соты, радар, сияние) не лез в таблицы. Знак вкладки выглядывает из
   правого верхнего угла первого блока и не заходит под строки таблиц. */
/* ★ Подложка на --ink, а не на --panel: светлее фона она быть не может, иначе
   цветной текст гостя (карты в цветах Discord, пометки AFK) теряет контраст.
   Панель читается рамкой и лёгким бликом сверху, фон тем она гасит. */
.ent-panel .sect{
  position:relative;margin:16px 0 0;padding:16px 18px 18px;overflow:hidden;
  border:1px solid color-mix(in srgb, var(--line) 90%, transparent);border-radius:var(--r);
  background-color:color-mix(in srgb, var(--ink) 74%, transparent);
  background-image:linear-gradient(180deg,color-mix(in srgb, var(--text) 3.5%, transparent),transparent 96px);
  box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text) 5%, transparent);
  -webkit-backdrop-filter:blur(8px) saturate(115%);backdrop-filter:blur(8px) saturate(115%);
}
.ent-panel > .sect:first-child,.ent-panel > .ent-mstats-row + .sect{margin-top:18px}
.ent-panel .sect > *{position:relative;z-index:1}
.ent-panel .sect h4{margin:0 0 14px;min-height:22px}
.ent-panel .sect .mstats{margin-bottom:14px}
.ent-panel .sect .mstats:last-child{margin-bottom:0}
.ent-panel .sect .dt-note{margin:14px 0 0}
.ent-panel .sect .note{margin:12px 0 0}
.ent-panel .sect .pager{padding:14px 0 0}
.ent-panel .sect .lvls{margin-top:12px}
.ent-panel .sect .ptrow:first-of-type{border-top:0}
.ent-panel .sect > .arch-btn{margin-top:14px!important}
.ent-panel > .mstats{margin-top:18px;margin-bottom:0}
/* Бой: стороны уже карточки, им та же подложка. */
/* Тоже на --ink: светлее прежнего белого налёта гостя стороны быть не должны. */
.ent-panel .side{
  background-color:color-mix(in srgb, var(--ink) 74%, transparent);
  -webkit-backdrop-filter:blur(8px) saturate(115%);backdrop-filter:blur(8px) saturate(115%);
}
/* Плитки тянутся на всю ширину блока, когда их от трёх. */
.ent .mstats:has(> :nth-child(3)){grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
/* Знак целиком в правом верхнем углу первого блока. Под заголовком этого блока
   запас ровно на высоту знака, поэтому шапка таблицы под знак не заходит. */
.ent-mark{
  position:absolute!important;top:10px;right:14px;z-index:0!important;width:66px;height:66px;pointer-events:none;
  color:var(--acc);opacity:var(--mark-o,.085);
}
.ent-mark svg{display:block;width:100%;height:100%}
.ent-panel .sect.has-mark > h4{margin-bottom:36px;padding-right:80px}
html[data-theme="voltage"],html[data-theme="semafor"],html[data-theme="lime"]{--mark-o:.055}
html[data-theme="mono"]{--mark-o:.06}
html[data-theme="fog"],html[data-theme="sand"]{--mark-o:.085}
@media (max-width:760px){
  .ent-panel .sect{padding:14px 12px 14px}
  .ent-mark{width:52px;height:52px;top:8px;right:10px}
  .ent-panel .sect.has-mark > h4{margin-bottom:26px;padding-right:60px}
}
@media (prefers-reduced-motion:reduce){
  .ent-panel .sect,.ent-panel .side{-webkit-backdrop-filter:none;backdrop-filter:none;background:color-mix(in srgb, var(--panel) 72%, transparent)}
}
@media (max-width:760px){
  .ent-head.mhead{padding:18px 16px}
  .ent-top{gap:12px}
  .ent-meta{margin-top:12px}
  .etab{height:36px;padding:0 12px;font-size:14px}
}
/* Телефон: шапка не должна занимать весь экран до вкладок. */
@media (max-width:560px){
  .ent-facts{margin-top:14px;gap:10px}
  .ent-facts .mstats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .ent-facts .mstat{padding:10px 10px 9px}
  .ent-facts .mstat b{font-size:17px}
  .ent-facts .mstat i{font-size:11.5px;margin-top:4px}
  .ent-facts .mstat u{font-size:12px;margin-top:4px}
  .ent-facts .mranks{gap:6px}
  .ent-facts .rkchip{padding:4px 11px;font-size:12.5px}
  .ent-facts .rkchip b{font-size:14.5px}
  .ent-name{font-size:clamp(23px,7vw,30px)}
}
@media (max-width:480px){
  .ent-bar{align-items:flex-start}
  .ent-back{height:32px;padding:0 10px}
  .ent-back b{display:none}
}
@media (prefers-reduced-motion:reduce){
  .etab,.ent-back,a.ent-tag,a.chip.elink,.award-chip.aw,.aw-tip{transition:none}
}
/* ── страницы: конец ── */

/* ══ УЗКИЙ ЭКРАН ═════════════════════════════════════════════
   Ничего не вылезает за край и не режется молча: подпись у заголовка
   переносится под него, кнопки карточки встают отдельной строкой, крестик
   всегда в углу. Где многоточие всё же нужно, полный текст кладёт в title
   autoTitles(). Цвета только из переменных темы. */
html{-webkit-tap-highlight-color:color-mix(in srgb, var(--acc) 18%, transparent)}
/* Окно карточки не шире экрана: столбец сетки иначе растягивался по самой
   широкой таблице внутри, и окно уезжало вправо (сервер из тир листа). */
.modal{grid-template-columns:minmax(0,1fr)}
/* Имя игрока в стороне боя переносится, если не влезло: две стороны рядом
   на планшете тоже узкие. */
.side td:first-child{white-space:normal;overflow-wrap:anywhere}
@media (max-width:560px){
  .side th,.side td{padding:7px 9px}
}
@media (max-width:760px){
  .shead h2{white-space:normal;overflow-wrap:anywhere}
  .mtop{row-gap:10px}
  .mtop .who{flex:1 1 100%;padding-right:46px}
  .mbtns{position:static;flex:1 1 100%;justify-content:flex-start}
  .mbtns:not(:has(> :not(.mclose))){margin-top:-10px}
  .mbtns .mclose{position:absolute;top:16px;right:16px;z-index:3}
}
@media (max-width:560px){
  .shead em{flex-basis:100%}
}
/* Пока открыта выезжающая панель, страница стоит на месте: body
   закреплён, а полоса сверху держится сама, чтобы не уехать под подложку. */
html.nav-open .topbar{position:fixed;left:0;right:0;top:0}
html.nav-open body{padding-top:var(--head-h)}
.ns-seo{max-width:760px;margin:24px auto;padding:0 16px;line-height:1.6}
.ns-seo h2{font-size:18px;margin:0 0 8px}
.ns-seo ul{margin:0 0 12px;padding-left:18px}
.ns-seo a{color:var(--acc-hi,#a78bfa)}
/* ── личная страница /me (этап 2 входа через Discord, 14.09.2026) ──
   Только переменные темы. Блоки на той же еле видной подложке, что разделы
   страниц игрока и семьи (на --ink, а не на --panel). Проверено в mono и
   voltage, от 360 px без боковой прокрутки. */
.me{min-width:0;padding-bottom:6px}
.me .sect,.me-head{
  position:relative;margin:16px 0 0;padding:16px 18px 18px;min-width:0;
  border:1px solid color-mix(in srgb, var(--line) 90%, transparent);border-radius:var(--r);
  background-color:color-mix(in srgb, var(--ink) 74%, transparent);
  background-image:linear-gradient(180deg,color-mix(in srgb, var(--text) 3.5%, transparent),transparent 96px);
  box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text) 5%, transparent);
  -webkit-backdrop-filter:blur(8px) saturate(115%);backdrop-filter:blur(8px) saturate(115%);
}
.me > :first-child{margin-top:0}
.me .sect h4{margin:0 0 14px;min-height:22px}
.me-head{display:flex;align-items:center;gap:16px}
.me-head img{flex:none;width:56px;height:56px;border-radius:50%;background:var(--panel2)}
.me-head img:not([src]){visibility:hidden}
.me-hbox{min-width:0}
.me-name{margin:0;font-size:clamp(22px,3vw,30px);font-weight:750;letter-spacing:-.02em;line-height:1.15;color:var(--text);overflow-wrap:anywhere}
.me-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:6px;font-family:var(--mono);font-size:13px;color:var(--muted);min-width:0}
.me-meta > span{min-width:0;overflow-wrap:anywhere}
.me-meta .chip{max-width:100%}
.me-lead{margin:0 0 14px;color:var(--text-2);font-size:15.5px;line-height:1.62;max-width:70ch}
.me-note{margin:0 0 14px;color:var(--muted);font-size:14px;line-height:1.55;max-width:78ch}
.me-muted{margin:0;color:var(--muted);font-size:14.5px;line-height:1.6;max-width:78ch}
.me-err{margin:8px 0 0;color:var(--neg);font-size:14px;line-height:1.5}
.me-err:empty{display:none}
.me-down{margin:12px 0 0;padding:10px 14px;border-radius:12px;border:1px dashed var(--line);color:var(--muted);font-size:14px}
.me-ok{margin:8px 0 0;color:var(--pos);font-size:14px}
.me-okt{color:var(--pos)}
.me-cnt{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.me-grow{flex:1 1 0}
.me-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;
  border-radius:10px;cursor:pointer;font:inherit;font-family:var(--mono);font-size:13.5px;line-height:1.2;
  color:var(--text-2);background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--line);
  text-decoration:none;text-align:center;transition:color .15s,border-color .15s,background .15s;
}
.me-btn:hover:not(:disabled){color:var(--text);border-color:var(--acc)}
.me-btn:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.me-btn:disabled,.me-btn.dis{opacity:.45;cursor:default;pointer-events:none}
.me-btn svg{flex:none;width:18px;height:18px}
.me-btn.pri{
  font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--text);
  border-color:color-mix(in srgb, var(--acc) 55%, transparent);background:color-mix(in srgb, var(--acc) 18%, transparent);
}
.me-btn.pri:hover:not(:disabled){background:color-mix(in srgb, var(--acc) 30%, transparent);border-color:var(--acc)}
.me-btn.warn{color:var(--neg);border-color:color-mix(in srgb, var(--neg) 40%, var(--line))}
.me-btn.warn:hover:not(:disabled){color:var(--text);border-color:var(--neg);background:color-mix(in srgb, var(--neg) 16%, transparent)}
.me-dsc svg{width:20px;height:20px}
.me-backbtn{margin:0 0 2px}
.me-head + .me-backbtn{margin-top:14px}
.me-backbtn + .sect{margin-top:12px}
.me-grp + .me-grp{margin-top:16px}
.me-grp-h{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:0 0 4px}
.me-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line2);min-width:0}
.me-grp-h + .me-row{border-top:0}
.me-who{flex:1 1 0;min-width:0}
.me-nick{font-size:16px;font-weight:600;color:var(--text);text-decoration:none;overflow-wrap:anywhere}
a.me-nick:hover{color:var(--acc-hi);text-decoration:underline}
.me-kind{display:block;margin:0 0 2px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.me-subj{margin:-4px 0 0;font-size:18px;font-weight:650;color:var(--text);overflow-wrap:anywhere}
.me-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin:14px 0 0}
.me-fld{display:grid;gap:6px;min-width:0}
.me-fld > span:first-child{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.me-fld .selwrap{display:flex;width:240px;max-width:100%}
.me-fld .inp{width:200px;max-width:100%;min-width:0}
.me-form .me-btn{min-height:44px}
.me-pv{margin:12px 0 0;min-height:22px;font-size:14.5px;color:var(--text-2);line-height:1.55;overflow-wrap:anywhere}
.me-pv b{color:var(--text)}
.me-pv.bad{color:var(--neg)}
.me-pv.ok{color:var(--pos)}
.me-dz{display:grid;gap:10px;justify-items:start;margin-top:10px}
.me-dz:empty{display:none}
.me-dz > .me-comp{justify-self:stretch;margin-top:0}
.me-badge{
  flex:none;font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;line-height:1.3;border-radius:99px;padding:4px 10px;
  border:1px solid var(--line);color:var(--text-2);white-space:nowrap;
}
.me-badge.act{color:var(--acc-hi);border-color:color-mix(in srgb, var(--acc) 50%, transparent);background:color-mix(in srgb, var(--acc) 12%, transparent)}
.me-badge.ok{color:var(--pos);border-color:color-mix(in srgb, var(--pos) 45%, transparent);background:color-mix(in srgb, var(--pos) 10%, transparent)}
.me-badge.no{color:var(--neg);border-color:color-mix(in srgb, var(--neg) 45%, transparent);background:color-mix(in srgb, var(--neg) 10%, transparent)}
.me-badge.off{color:var(--muted)}
.me-list{display:grid;gap:8px}
.me-trow{
  display:flex;align-items:center;gap:12px;width:100%;min-width:0;text-align:left;padding:12px 14px;border-radius:12px;cursor:pointer;
  font:inherit;color:inherit;background:color-mix(in srgb, var(--panel) 60%, transparent);border:1px solid var(--line2);transition:border-color .15s;
}
.me-trow:hover{border-color:color-mix(in srgb, var(--acc) 45%, var(--line))}
/* Пометка состояния уходит под текст, когда рядом тесно, а не сжимает его. */
.me-trow,.me-fam > .me-row{flex-wrap:wrap;row-gap:8px}
.me-trow > .me-who,.me-fam > .me-row > .me-who{flex:1 1 240px}
.me-trow:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.me-ppl{margin-top:10px}
.me-dec{margin:14px 0 0;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 70%, transparent)}
.me-dec b{display:block;color:var(--text);font-size:15px}
.me-dec p{margin:6px 0 0;color:var(--text-2);font-size:14.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.me-dec .me-cnt{display:block;margin-top:6px}
.me-msgs{display:grid;gap:10px;margin:14px 0 0}
.me-msg{padding:12px 14px;border-radius:12px;border:1px solid var(--line2);background:color-mix(in srgb, var(--panel) 55%, transparent);min-width:0}
.me-msg.mine{border-color:color-mix(in srgb, var(--acc) 32%, var(--line2))}
.me-msg.adm{border-color:var(--line);background:color-mix(in srgb, var(--panel2) 80%, transparent)}
.me-msg-h{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;margin:0 0 6px}
.me-msg-h b{font-size:14.5px;color:var(--text);overflow-wrap:anywhere}
.me-msg.adm .me-msg-h b{color:var(--acc-hi)}
.me-msg-h span{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.me-msg p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-2);font-size:14.5px;line-height:1.55}
.me-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.me-thumbs.hidden{display:none}
.me-thumb{position:relative;flex:none;width:120px;height:84px;padding:0;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--panel2);cursor:zoom-in;font:inherit}
.me-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.me-thumb:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.me-thumb.gone{display:grid;place-items:center;cursor:default;padding:6px;text-align:center;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.me-comp .me-thumb{cursor:default}
.me-thumb.up::after{
  content:"загружаю";position:absolute;inset:0;display:grid;place-items:center;
  background:color-mix(in srgb, var(--ink) 62%, transparent);font-family:var(--mono);font-size:11.5px;color:var(--text);
}
.me-x{
  position:absolute;top:4px;right:4px;z-index:1;width:28px;height:28px;padding:0;border-radius:50%;cursor:pointer;
  display:grid;place-items:center;font-size:17px;line-height:1;color:var(--text);
  border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 82%, transparent);
}
.me-x:hover{border-color:var(--neg)}
.me-comp{display:grid;gap:10px;margin:12px 0 0;min-width:0}
.me-hint{padding:10px 14px;border-radius:12px;border:1px dashed var(--line);color:var(--text-2);font-size:14px;line-height:1.55}
.me-hint summary{cursor:pointer;color:var(--text);font-weight:600}
.me-hint summary:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:4px}
.me-hint ol{margin:8px 0 2px;padding-left:20px}
.me-hint li + li{margin-top:6px}
.me .inp.me-ta{display:block;width:100%;min-width:0;min-height:96px;resize:vertical;font-family:var(--sans);font-size:14.5px;line-height:1.5}
.me-cbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.me-file{position:relative;overflow:hidden}
.me-file input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}
.me-file:focus-within{outline:2px solid var(--acc);outline-offset:2px}
.me-fam{padding:12px 0 0;margin-top:12px;border-top:1px solid var(--line2);display:grid;gap:10px;justify-items:start}
.me .sect > h4 + .me-fam{margin-top:0;padding-top:0;border-top:0}
.me-fam > .me-row{border-top:0;padding:0;width:100%}
.me-fam > .me-comp{justify-self:stretch;width:100%}
.me-logo{display:flex;flex-wrap:wrap;align-items:center;gap:14px;width:100%}
.me-logo .me-who{display:grid;gap:10px;justify-items:start;flex-basis:220px}
.me-logo-img{
  flex:none;width:92px;height:92px;border-radius:14px;overflow:hidden;display:grid;place-items:center;padding:6px;text-align:center;
  border:1px solid var(--line);background:var(--panel2);font-family:var(--mono);font-size:11.5px;color:var(--muted);
}
.me-logo-img img{display:block;width:100%;height:100%;object-fit:contain}
/* famdiscord 15.09.2026: Discord семьи у владельца на «Моей странице». Цвет Discord
   #5865F2 единственный свой, остальное из темы. */
.me-fd{display:grid;gap:10px;width:100%;padding-top:12px;border-top:1px solid var(--line2)}
.me-fd > p{margin:0}
.me-fd-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.me-fd-form .me-fld{flex:1 1 260px}
.me-fd-form .me-fld .inp{width:100%}
.me-fd-form .me-btn{min-height:44px}
.me-fd-pv{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;min-width:0;padding:10px 12px;border-radius:12px;
  border:1px solid color-mix(in srgb, #5865F2 50%, var(--line));background:color-mix(in srgb, #5865F2 12%, var(--panel))}
.me-fd-pv.dead{border-color:color-mix(in srgb, var(--neg) 50%, var(--line));background:color-mix(in srgb, var(--neg) 8%, var(--panel))}
.me-fd-ic{flex:none;width:48px;height:48px;border-radius:14px;overflow:hidden;display:grid;place-items:center;background:#5865F2;color:var(--text)}
.me-fd-ic img{display:block;width:100%;height:100%;object-fit:cover}
.me-fd-ic svg{width:26px;height:26px;display:block}
.me-fd-pv .me-who{display:grid;gap:3px;flex:1 1 200px}
.me-fd-pv b{font-size:15.5px;color:var(--text);overflow-wrap:anywhere}
.me-fd-pv small{font-family:var(--mono);font-size:12.5px;color:var(--text-2);overflow-wrap:anywhere}
.me-fd-pv .me-err{margin:2px 0 0}
@media (max-width:560px){
  .me-fd-form > .me-btn{flex:1 1 auto}
  .me-fd-pv > .me-btn{flex:1 1 100%}
}
.me-lb{
  position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:24px 16px;cursor:zoom-out;
  background:color-mix(in srgb, var(--ink) 90%, transparent);
}
.me-lb img{max-width:100%;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);border-radius:10px;border:1px solid var(--line);background:var(--panel2)}
.me-lb-x{
  position:fixed;top:14px;right:14px;width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:24px;line-height:1;
  color:var(--text);border:1px solid var(--line);background:var(--panel);
}
.me-lb-x:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
@media (pointer:coarse){.me-btn{min-height:44px}}
@media (max-width:760px){
  .me .sect,.me-head{padding:14px 12px}
}
@media (max-width:560px){
  .me-head{gap:12px}
  .me-head img{width:48px;height:48px}
  .me-row{flex-wrap:wrap}
  .me-row > .me-btn{margin-left:auto}
  .me-form > *{flex:1 1 100%}
  .me-fld .selwrap,.me-fld .inp{width:100%}
  .me-trow{flex-wrap:wrap}
  .me-thumb{width:100px;height:72px}
  .me-cbar > .me-btn.pri{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){
  .me .sect,.me-head{-webkit-backdrop-filter:none;backdrop-filter:none;background:color-mix(in srgb, var(--panel) 72%, transparent)}
}
/* ── Вольт: сплошная основа под подложками (14.09.2026, «в вольте всё прозрачно») ──
   Во весь экран у Вольта лежит живой фон: сетка .scope и пол .floor. Часть
   подложек сделана одним белым налётом без основы (--card-fill и похожие):
   строки ВЗП и Трансферов .wcard, тройка на главной .t3, тир лист, точки,
   плитки .mstat на страницах игрока и семьи. В Моно за ними пустой чёрный фон,
   и налёт читается карточкой; в Вольте сквозь него шла сетка. Здесь под те же
   слои кладётся основа --ink, и в Вольте выходит ровно вид Моно. Разделы
   страниц (.sect, стороны боя, /me) держались на размытии, а без него (режим
   «меньше движения») тоже просвечивали: им та же основа. --dim чуть светлее,
   чтобы гашеный текст на карточках держал контраст 4.5. Моно блок не трогает. */
html[data-theme="voltage"]{--dim:#85878A}
html[data-theme="voltage"] :is(.wcard,.t3,.fcard,.scard,.tier-intro,.tier-card),
html[data-theme="voltage"] .mstat:not(.mhead .mstat,.modal .mstat),
html[data-theme="voltage"] :is(.ent-panel .sect,.ent-panel .side,.me .sect,.me-head){background-color:var(--ink)}
@media (prefers-reduced-motion:reduce){
  html[data-theme="voltage"] :is(.ent-panel .sect,.ent-panel .side,.me .sect,.me-head){background-color:color-mix(in srgb, var(--panel) 72%, var(--ink))}
}
html[data-theme="voltage"] .wcard:hover,html[data-theme="voltage"] .wcard.clickable:focus-visible{border-color:color-mix(in srgb, var(--acc) 45%, var(--line));background-color:color-mix(in srgb, var(--acc) 6%, var(--ink))}
/* ── faq 14.09.2026: окно FAQ (openInfo) ──
   Вопросы гармошкой на details/summary, поиск в липкой шапке окна. Цвета
   только из переменных темы; полоска цветов ников (.lvls) как и раньше
   цветами Discord. Стоит в конце стилей, чтобы быть главнее общих правил. */
.mpanel.faq-panel{width:min(780px,100%)}
.faq-find{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin-top:14px}
.faq-find .inp{flex:1 1 auto;min-width:0;width:100%;font-family:var(--sans);font-size:15px;background:var(--panel)}
.faq-find .inp:focus{border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb, var(--acc) 18%, transparent);outline:none}
.faq-cnt{flex:none;font-family:var(--mono);font-size:13px;color:var(--muted);white-space:nowrap}
.faq{display:grid;gap:22px}
.faq [hidden],.faq-foot[hidden]{display:none}
.faq-g h3{
  margin:0 0 10px;display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
}
.faq-g h3::after{content:"";flex:1;height:1px;background:var(--line)}
.faq-list{display:grid;gap:8px}
.faq-q{border:1px solid var(--line);border-radius:12px;background:var(--panel2);transition:border-color .15s}
.faq-q:hover{border-color:color-mix(in srgb, var(--acc) 40%, var(--line))}
.faq-q[open]{border-color:color-mix(in srgb, var(--acc) 55%, var(--line))}
.faq-q summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:11px;
  font-size:15.5px;font-weight:600;line-height:1.35;color:var(--text);
}
.faq-q summary::-webkit-details-marker{display:none}
.faq-q summary::after{
  content:"";flex:none;margin-left:auto;margin-top:-4px;width:8px;height:8px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s;
}
.faq-q[open] summary::after{transform:rotate(-135deg);margin-top:4px;border-color:var(--acc)}
.faq-q summary:hover::after{border-color:var(--text)}
.faq-q summary:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.faq-a{padding:0 16px 15px;color:var(--text-2);font-size:15px;line-height:1.6;overflow-wrap:anywhere}
.faq-a p{margin:0}
.faq-a p + p,.faq-a p + ul,.faq-a ul + p,.faq-a ul + .lvls{margin-top:8px}
.faq-a ul{margin:0;padding-left:20px}
.faq-a li + li{margin-top:4px}
.faq-a li::marker{color:var(--acc)}
.faq-a .lvls{margin-top:12px}
.faq-a a,.faq-lnk,.faq-none a{
  color:var(--acc-hi);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--acc-hi) 45%, transparent);
  text-decoration-thickness:1px;text-underline-offset:3px;
}
.faq-lnk{display:inline;margin:0;padding:0;border:0;background:none;font:inherit;cursor:pointer}
.faq-a a:hover,.faq-lnk:hover{text-decoration-color:currentColor}
.faq-a a:focus-visible,.faq-lnk:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:3px}
.faq-none{margin:0;padding:6px 2px;color:var(--muted);font-size:15px}
.faq-foot{margin:20px 0 0;color:var(--muted);font-size:14.5px}
@media (max-width:560px){
  .faq-find{margin-top:10px;gap:10px}
  .faq-q summary{padding:12px 13px;font-size:15px}
  .faq-a{padding:0 13px 13px;font-size:14.5px}
  .faq{gap:18px}
}
@media (prefers-reduced-motion:reduce){
  .faq-q,.faq-q summary::after{transition:none}
}
/* ── h2h: очные встречи ведут на отдельную страницу ──
   Строки блока кликабельны (h2h-row), чевроном (h2h-chev) намекают, что есть
   куда перейти. Полосатость задаёт класс h2h-alt, а не nth-child. Цвета из
   темы.
   ★ Общее правило table{min-width:700px} делало эту таблицу шире телефона:
   сняли, как у .side table. */
.h2h-tbl{min-width:0}
.h2h-tbl tbody tr td{background:none}
.h2h-tbl tbody tr.h2h-alt td{background:color-mix(in srgb, var(--text) 2.8%, transparent)}
.h2h-tbl tbody tr.h2h-row{cursor:pointer}
.h2h-tbl tbody tr.h2h-row:hover td{background:color-mix(in srgb, var(--acc) 9%, transparent)}
.h2h-tbl tbody tr.h2h-row:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.h2h-sc{margin:0 .55em;font-variant-numeric:tabular-nums}
.h2h-chev{
  display:inline-block;width:7px;height:7px;margin-left:10px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:translateY(-3px) rotate(45deg);transition:transform .15s,border-color .15s;
}
.h2h-row:hover .h2h-chev,.h2h-row:focus-visible .h2h-chev{border-color:var(--acc)}
/* contain:inline-size: содержимое короба не распирает страницу.
   h2h-page (14.09.2026): короб теперь сам по себе страница, а не вставка под
   строкой таблицы — рамка со всех сторон обычным цветом, не верхний акцент. */
.h2h-box{
  box-sizing:border-box;width:auto;max-width:100%;contain:inline-size;padding:14px 14px 12px;
  border:1px solid var(--line);border-top:2px solid var(--acc);border-radius:0 0 var(--r) var(--r);
  background:color-mix(in srgb, var(--ink) 55%, transparent);
}
.h2h-box.h2h-page{border-top-color:var(--line);border-radius:var(--r)}
.h2h-sum{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(min(100%,138px),1fr));margin:0 0 12px}
.h2h-f{min-width:0;border:1px solid var(--line2);border-radius:10px;padding:9px 11px;background:color-mix(in srgb, var(--text) 3%, transparent)}
.h2h-f b{display:block;font-family:var(--mono);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}
.h2h-f i{display:block;font-style:normal;font-family:var(--mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.h2h-f u{display:block;text-decoration:none;font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:4px}
.h2h-f-score b{font-size:20px}
.h2h-maps{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px}
.h2h-k{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.h2h-map{
  display:inline-flex;align-items:baseline;gap:7px;max-width:100%;min-width:0;
  border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:13px;
  background:color-mix(in srgb, var(--panel) 60%, transparent);
}
.h2h-map em{font-style:normal;color:var(--text-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.h2h-map b{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.h2h-note{margin:0 0 10px;color:var(--muted);font-size:13.5px;line-height:1.5}
.h2h-listk{margin:14px 0 8px}
.h2h-box > .arch-btn{margin-top:10px}
.h2h-wait,.h2h-empty{padding:18px 6px;text-align:center;color:var(--muted);font-family:var(--mono);font-size:13.5px}
@media (max-width:560px){
  /* Своё имя на своей странице лишнее: соперник получает место и не рвёт строку. */
  .h2h-tbl .h2h-me{display:none}
  .h2h-tbl .h2h-sc{margin-left:0}
  .h2h-tbl .h2h-op{display:inline-block;vertical-align:bottom;max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .h2h-box{padding:10px 8px 10px}
  .h2h-sum{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* webkit 15.09.2026: Safari и iPhone.
   Поля на iOS не мельче 16 px, иначе Safari увеличивает страницу при касании поля
   и она остаётся увеличенной. Условие ловит только iOS и iPadOS, на компьютере и
   Android вид прежний. Там же пустое поле даты: без min-height оно сжимается. */
@supports (-webkit-touch-callout:none){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset]):not([type=color]):not([type=image]),select,textarea{font-size:16px!important}
  .inp.dt::-webkit-date-and-time-value{min-height:1.25em;text-align:left}
}
/* Список «о чём» в обратной связи: WebKit рисовал родную серую кнопку поверх
   тёмной формы. Стрелка из двух треугольников цветом темы. */
.form select{
  -webkit-appearance:none;appearance:none;padding-right:40px;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 21px) 50%,calc(100% - 16px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
/* Вырез экрана в альбомной ориентации и режим «на домашнем экране»: прижатые к
   краю окна не заходят под вырез. Там, где выреза нет, env() равен 0. */
.ldock{right:max(20px,env(safe-area-inset-right))}
@media (max-width:600px){.ldock{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}}
.srvp-pop{width:min(1010px, calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)))}
.srvp-pop.srvp-sm{width:min(660px, calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)))}
@media (max-width:599.98px){.srvp-pop,.srvp-pop.srvp-sm{width:calc(100vw - 16px - env(safe-area-inset-left) - env(safe-area-inset-right))}}
.me-lb{padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.me-lb-x{top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}
/* Карточка боя уже 360 px (iPhone SE и узкие Android): дата с пометкой AFK или
   DISBALANCE шире своего столбца и наезжала на формат и сервер. Пометка
   переносится под дату; от 360 px вид прежний. */
@media (max-width:359.98px){.wduel .wd-when{flex-wrap:wrap;row-gap:4px;min-width:0}}
/* ── famad 15.09.2026: страница «О семье» /f/<сервер>/<семья>/about, каталог
   «Семьи ищут игроков» /recruit, редактор на «Моей странице», метки тира и места
   в сезоне в шапке страницы семьи. Цвета только из переменных темы; свой только у
   Discord (#5865F2), как у famdiscord. Проверено в g5, mono, voltage. */
.fad{min-width:0;padding-bottom:6px}
.fad-banner{margin:14px 0 0;padding:10px 14px;border:1px dashed color-mix(in srgb, var(--acc) 55%, var(--line));border-radius:12px;
  background:color-mix(in srgb, var(--acc) 8%, var(--ink));color:var(--text-2);font-size:14px;line-height:1.55}
.fad-banner b{color:var(--text)}
.ent-meta .ent-tag b{font-weight:700;color:var(--text)}

/* шапка */
.fad-hero{position:relative;margin-top:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);overflow:hidden}
.fad-cover,.fadc-cover,.mefa-cov{position:relative;overflow:hidden;color:var(--acc);
  background:
    radial-gradient(120% 160% at 88% -10%, color-mix(in srgb, var(--acc) 36%, transparent), transparent 62%),
    radial-gradient(80% 140% at 0% 110%, color-mix(in srgb, var(--acc-hi) 16%, transparent), transparent 58%),
    linear-gradient(180deg, color-mix(in srgb, var(--acc) 9%, var(--panel2)), var(--panel2))}
.fad-cover{height:220px}
.fad-cover svg,.fadc-cover svg,.mefa-cov svg{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.15}
.fad-cover img,.fadc-cover img,.mefa-cov img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fad-cover::after,.fadc-cover::after{content:"";position:absolute;inset:auto 0 0 0;height:72%;background:linear-gradient(180deg,transparent,var(--panel2))}
.fad-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:18px 24px;padding:0 26px 24px;margin-top:-70px}
.fad-logo{flex:none;display:grid;place-items:center;width:132px;height:132px;border-radius:30px;overflow:hidden;
  border:1px solid color-mix(in srgb, var(--acc) 42%, var(--line));
  background:linear-gradient(145deg,color-mix(in srgb, var(--acc) 30%, var(--panel)),color-mix(in srgb, var(--acc-hi) 10%, var(--ink)));
  box-shadow:0 0 0 6px var(--panel2),0 22px 44px -26px var(--ink)}
.fad-logo img{width:100%;height:100%;object-fit:cover;display:block}
.fad-logo b{font-family:var(--champ-family);font-weight:var(--champ-weight);font-size:46px;letter-spacing:.02em;line-height:1;color:var(--text)}
.fad-logo.md{width:60px;height:60px;border-radius:16px;box-shadow:0 0 0 4px var(--panel2)}
.fad-logo.md b{font-size:21px}
.fad-id{min-width:0;padding-bottom:4px}
.fad-kick{margin:0;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.fad-name{margin:6px 0 0;font-family:var(--champ-family);font-weight:var(--champ-weight);text-transform:var(--champ-tt);letter-spacing:var(--champ-track);
  font-size:clamp(28px,3.3vw,46px);line-height:1.1;color:var(--text);overflow-wrap:anywhere}
.fad-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
.fad-meta .ent-tag b{font-weight:700;color:var(--text)}
.fad-rec{display:inline-flex;align-items:center;gap:9px;min-height:30px;padding:3px 13px 3px 11px;border-radius:999px;border:1px solid var(--line);
  background:color-mix(in srgb, var(--panel) 72%, transparent);font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.fad-rec::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--muted)}
.fad-rec.on{color:var(--text);border-color:color-mix(in srgb, var(--pos) 55%, var(--line));background:color-mix(in srgb, var(--pos) 14%, var(--panel))}
.fad-rec.on::before{background:var(--pos);box-shadow:0 0 0 4px color-mix(in srgb, var(--pos) 24%, transparent)}
.fad-cta{display:grid;gap:10px;width:340px;max-width:100%;padding-bottom:2px}
a.fad-dsc,a.fad-go{display:flex;align-items:center;gap:12px;min-height:62px;padding:8px 16px 8px 8px;border-radius:14px;text-decoration:none;color:var(--text);min-width:0;
  transition:border-color .15s,background-color .15s}
a.fad-dsc{border:1px solid color-mix(in srgb, #5865F2 72%, var(--line));background:color-mix(in srgb, #5865F2 30%, var(--panel))}
a.fad-dsc:hover{border-color:#5865F2;background:color-mix(in srgb, #5865F2 44%, var(--panel))}
a.fad-dsc:focus-visible{outline:2px solid #5865F2;outline-offset:2px}
a.fad-go{border:1px solid color-mix(in srgb, var(--acc) 45%, var(--line));background:color-mix(in srgb, var(--acc) 12%, var(--panel))}
a.fad-go:hover{border-color:var(--acc);background:color-mix(in srgb, var(--acc) 20%, var(--panel))}
a.fad-go:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.fad-bi{flex:none;width:46px;height:46px;border-radius:12px;overflow:hidden;display:grid;place-items:center;color:var(--text)}
a.fad-dsc .fad-bi{background:#5865F2}
a.fad-go .fad-bi{background:color-mix(in srgb, var(--acc) 22%, var(--panel2));color:var(--acc-hi)}
.fad-bi img{width:100%;height:100%;object-fit:cover;display:block}
.fad-bi svg{width:24px;height:24px;display:block}
.fad-bt{display:grid;gap:2px;min-width:0;flex:1 1 auto}
.fad-bt b{font-size:15.5px;font-weight:700;line-height:1.25}
.fad-bt small{font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fad-arr{flex:none;width:18px;height:18px;color:var(--text-2)}
.fad-arr svg{width:100%;height:100%;display:block}

/* блоки */
.fad-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0 18px;align-items:start}
.fad-col{min-width:0}
.fad-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;align-items:start}
.fad .sect{
  position:relative;margin:16px 0 0;padding:16px 18px 18px;min-width:0;
  border:1px solid color-mix(in srgb, var(--line) 90%, transparent);border-radius:var(--r);
  background-color:color-mix(in srgb, var(--ink) 74%, transparent);
  background-image:linear-gradient(180deg,color-mix(in srgb, var(--text) 3.5%, transparent),transparent 96px);
  box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text) 5%, transparent);
  -webkit-backdrop-filter:blur(8px) saturate(115%);backdrop-filter:blur(8px) saturate(115%);
}
.fad .sect > h4{margin:0 0 14px;min-height:22px}
.fad .sect.has-more > h4{padding-right:150px}
.fad-more{position:absolute;top:16px;right:16px;z-index:2;display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 4px;border-radius:6px;
  font-family:var(--mono);font-size:13px;color:var(--muted);text-decoration:none;white-space:nowrap}
.fad-more .fad-arr{width:14px;height:14px;color:inherit}
.fad-more:hover{color:var(--acc-hi)}
.fad-more:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.fad .sect .mstats{margin:0}
.fad-note{margin:12px 0 0;color:var(--muted);font-size:13.5px;line-height:1.5}

/* текст владельца */
.fad-text{color:var(--text-2);font-size:15.5px;line-height:1.68;max-width:74ch;overflow-wrap:anywhere}
.fad-text p{margin:0 0 12px}
.fad-text > :last-child{margin-bottom:0}
.fad-text b{color:var(--text);font-weight:650}
.fad-text ul{margin:0 0 12px;padding-left:22px}
.fad-text li{margin:4px 0}
.fad-text li::marker{color:var(--acc)}
.fad-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.fad-tag{display:inline-flex;align-items:center;min-height:30px;padding:3px 12px;border-radius:999px;
  border:1px solid color-mix(in srgb, var(--acc) 38%, var(--line));background:color-mix(in srgb, var(--acc) 10%, var(--panel));
  color:var(--text);font-size:13.5px;white-space:nowrap}

/* набор */
.fad-rqhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 14px}
.fad-rqhead .fad-rec{font-size:14.5px;min-height:34px}
.fad-rqhead span{font-size:14.5px;color:var(--text-2)}
.fad-rq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fad-box{min-width:0;padding:12px 14px;border-radius:12px;border:1px solid var(--line2);background:color-mix(in srgb, var(--panel) 55%, transparent)}
.fad-box.wide{grid-column:1/-1}
.fad-lbl{display:block;margin:0 0 6px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fad-box .fad-text{font-size:15px}
.fad-big{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--text)}
.fad-live{border-left:3px solid var(--acc);background:color-mix(in srgb, var(--acc) 6%, transparent)}
.fad-live p{margin:0;color:var(--text-2);font-size:14.5px;line-height:1.55}
.fad-live p + p{margin-top:4px}
.fad-live b{color:var(--text)}
.fad-live p.fad-old{color:var(--neg)}
.fad-join{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.fad-join .fad-text{flex:1 1 260px}
a.fad-dsc.sm{min-height:44px;padding:5px 14px 5px 5px;border-radius:12px;flex:0 1 auto}
a.fad-dsc.sm .fad-bi{width:34px;height:34px;border-radius:9px}
a.fad-dsc.sm .fad-bi svg{width:19px;height:19px}

/* когда воюют */
.fad-sum{margin:0 0 12px;color:var(--text-2);font-size:14.5px;line-height:1.55}
.fad-sum b{color:var(--text)}
.fad-wk{display:grid;grid-template-columns:26px repeat(14,minmax(0,1fr));gap:3px;align-items:center}
.fad-wk i{font-style:normal;font-family:var(--mono);font-size:11.5px;color:var(--muted);text-align:center;white-space:nowrap}
.fad-wk i.d{text-align:left}
.fad-wk span{aspect-ratio:1;border-radius:4px;background:color-mix(in srgb, var(--text) 7%, transparent)}
.fad-wk span.l1{background:color-mix(in srgb, var(--acc) 26%, transparent)}
.fad-wk span.l2{background:color-mix(in srgb, var(--acc) 48%, transparent)}
.fad-wk span.l3{background:color-mix(in srgb, var(--acc) 72%, transparent)}
.fad-wk span.l4{background:var(--acc)}
.fad-wk .hd{grid-column:span 3;text-align:left}
.fad-wk .hd.last{grid-column:span 2}

/* игроки и соперники */
.fad-rows{display:grid}
.fad-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto auto;gap:12px;align-items:center;min-height:46px;padding:6px 0;border-top:1px solid var(--line2)}
.fad-row:first-child{border-top:0}
.fad-row > .n{font-family:var(--mono);font-size:13px;color:var(--muted)}
.fad-row > .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;color:var(--text);text-decoration:none}
.fad-row > a.nm:hover{text-decoration:underline}
.fad-row > .v{font-family:var(--mono);font-size:14.5px;text-align:right;color:var(--text);white-space:nowrap}
.fad-row > .v small{display:block;font-size:11.5px;letter-spacing:.04em;color:var(--muted)}
.fad .wlist-duel{margin:0}

/* подвал */
.fad-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:16px 0 0;padding:14px 18px;border-radius:var(--r);
  border:1px dashed var(--line);font-size:14px;color:var(--muted);line-height:1.5}
.fad-foot b{color:var(--text-2);font-weight:600}
.fad-foot .sp{flex:1 1 auto}
.fad-link{padding:0;border:0;background:none;font:inherit;font-size:14px;color:var(--text-2);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--text-2) 40%, transparent);cursor:pointer}
.fad-link:hover{color:var(--text)}
.fad-link:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.fad-none p{margin:0 0 12px;color:var(--text-2);font-size:15px;line-height:1.6;max-width:70ch}
.fad-none .fad-join{margin-top:6px}
.fad-none .fad-note{margin-top:16px}

/* ссылка со страницы семьи */
a.ent-tag.ent-ad{gap:6px;padding:3px 14px;font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--text);
  border-color:color-mix(in srgb, var(--acc) 60%, var(--line));background:color-mix(in srgb, var(--acc) 16%, var(--panel))}
a.ent-tag.ent-ad:hover{color:var(--text);border-color:var(--acc);background:color-mix(in srgb, var(--acc) 26%, var(--panel))}
.ent-ad-rec{font-weight:500;color:var(--text-2)}

/* каталог */
.fadc-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px}
.fadc-bar > span{font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.fadc-f{display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border-radius:999px;cursor:pointer;font:inherit;font-size:13.5px;
  color:var(--text-2);background:color-mix(in srgb, var(--panel) 80%, transparent);border:1px solid var(--line)}
.fadc-f:hover{color:var(--text);border-color:color-mix(in srgb, var(--acc) 55%, var(--line))}
.fadc-f[aria-pressed="true"]{color:var(--text);border-color:var(--acc);background:color-mix(in srgb, var(--acc) 18%, var(--panel))}
.fadc-f:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.fadc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:14px}
.fadc-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);overflow:hidden;
  transition:border-color .15s}
.fadc-card:hover{border-color:color-mix(in srgb, var(--acc) 45%, var(--line))}
.fadc-cover{height:84px}
.fadc-body{position:relative;z-index:1;display:grid;gap:12px;padding:0 16px 16px;margin-top:-34px;min-width:0}
.fadc-top{display:flex;align-items:flex-end;gap:12px;min-width:0}
.fadc-id{min-width:0;flex:1 1 auto;padding-bottom:2px}
a.fadc-name{display:block;font-size:19px;font-weight:750;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
a.fadc-name:hover{text-decoration:underline}
.fadc-sub{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:4px;font-family:var(--mono);font-size:13px;color:var(--muted)}
.fadc-sub .chip{max-width:170px}
.fadc-sub .fad-rec{min-height:26px;font-size:12.5px;padding:2px 10px 2px 9px}
.fadc-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fadc-nums div{min-width:0;padding:8px 10px;border-radius:10px;border:1px solid var(--line2);background:color-mix(in srgb, var(--ink) 55%, transparent)}
.fadc-nums b{display:block;font-family:var(--mono);font-size:16px;font-weight:700;color:var(--text);white-space:nowrap}
.fadc-nums i{display:block;margin-top:2px;font-style:normal;font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.fadc-rank{display:grid;gap:3px;font-size:13.5px;color:var(--text-2);line-height:1.4}
.fadc-rank b{color:var(--text);font-weight:700}
.fadc-tags{display:flex;flex-wrap:wrap;gap:6px}
.fadc-tags .fad-tag{min-height:26px;padding:2px 10px;font-size:13px}
.fadc-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13.5px;color:var(--text-2)}
.fadc-line b{color:var(--text)}
.fadc-act{display:flex;flex-wrap:wrap;gap:8px}
.fadc-act > *{flex:1 1 140px}
.fadc-act a.fad-dsc.sm{justify-content:flex-start}
.fadc-empty{padding:28px 18px;border:1px dashed var(--line);border-radius:var(--r);color:var(--muted);text-align:center;line-height:1.55}

/* редактор на «Моей странице» */
.mefa{justify-self:stretch;width:100%;display:grid;gap:16px;padding-top:14px;border-top:1px solid var(--line2);min-width:0}
.mefa-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.mefa-h h5{margin:0;font-size:17px;font-weight:700;color:var(--text)}
.mefa-h .me-btn{margin-left:auto}
.mefa-lead{margin:-6px 0 0;color:var(--muted);font-size:14.5px;line-height:1.55;max-width:80ch}
.mefa-note{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 70%, transparent)}
.mefa-note p{margin:0;flex:1 1 260px;font-size:14.5px;line-height:1.5;color:var(--text)}
.mefa-note.bad{border-color:color-mix(in srgb, var(--neg) 60%, var(--line));background:color-mix(in srgb, var(--neg) 10%, var(--panel))}
.mefa-note.mid{border-color:color-mix(in srgb, var(--acc) 60%, var(--line));background:color-mix(in srgb, var(--acc) 10%, var(--panel))}
.mefa-f{display:grid;gap:7px;min-width:0}
.mefa-f > span:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mefa-f > span:first-child em{font-style:normal;letter-spacing:0;text-transform:none;font-size:12.5px}
.mefa .inp{width:100%;min-width:0;font-family:var(--sans);font-size:15px}
.mefa textarea.inp{min-height:170px;resize:vertical;line-height:1.55}
.mefa textarea.inp.short{min-height:104px}
.mefa-cnt{justify-self:end;font-family:var(--mono);font-size:12px;color:var(--muted)}
.mefa-cnt.over{color:var(--neg)}
.mefa-hint{margin:0;color:var(--muted);font-size:13.5px;line-height:1.5}
.mefa-hint b{color:var(--text-2);font-weight:600}
.mefa-tags{display:flex;flex-wrap:wrap;gap:8px}
.mefa-tag{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 13px;border-radius:999px;cursor:pointer;font:inherit;font-size:13.5px;
  color:var(--text-2);background:color-mix(in srgb, var(--panel) 80%, transparent);border:1px solid var(--line)}
.mefa-tag:hover{color:var(--text);border-color:color-mix(in srgb, var(--acc) 55%, var(--line))}
.mefa-tag[aria-pressed="true"]{color:var(--text);border-color:var(--acc);background:color-mix(in srgb, var(--acc) 18%, var(--panel))}
.mefa-tag[aria-pressed="true"]::before{content:"✓";font-size:12px;color:var(--acc-hi)}
.mefa-tag:disabled{opacity:.45;cursor:default}
.mefa-tag:focus-visible,.mefa-sw:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.mefa-group{display:grid;gap:14px;padding:14px;border-radius:12px;border:1px solid var(--line2);background:color-mix(in srgb, var(--panel) 50%, transparent);min-width:0}
.mefa-group > h6{margin:0;font-size:15px;font-weight:700;color:var(--text)}
.mefa-sw{display:inline-flex;align-items:center;gap:12px;padding:0;border:0;background:none;cursor:pointer;font:inherit;font-size:15px;color:var(--text);justify-self:start}
.mefa-sw i{position:relative;flex:none;width:44px;height:26px;border-radius:999px;background:color-mix(in srgb, var(--text) 16%, var(--panel2));border:1px solid var(--line);transition:background-color .15s}
.mefa-sw i::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--text-2);transition:transform .15s}
.mefa-sw[aria-checked="true"] i{background:color-mix(in srgb, var(--pos) 55%, var(--panel2));border-color:var(--pos)}
.mefa-sw[aria-checked="true"] i::after{transform:translateX(18px);background:var(--text)}
.mefa-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mefa-cov{height:96px;border-radius:12px;border:1px solid var(--line2)}
.mefa-covrow{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.mefa-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mefa-st{font-family:var(--mono);font-size:12.5px;line-height:1.3;border-radius:99px;padding:4px 10px;border:1px solid var(--line);color:var(--text-2);white-space:nowrap}
.mefa-st.pub{color:var(--pos);border-color:color-mix(in srgb, var(--pos) 45%, transparent);background:color-mix(in srgb, var(--pos) 10%, transparent)}
.mefa-st.bad{color:var(--neg);border-color:color-mix(in srgb, var(--neg) 45%, transparent);background:color-mix(in srgb, var(--neg) 10%, transparent)}
.mefa-st.mid{color:var(--acc-hi);border-color:color-mix(in srgb, var(--acc) 45%, transparent);background:color-mix(in srgb, var(--acc) 10%, transparent)}
.mefa .me-ok,.mefa .me-err{margin:0}
.mefa-rules{margin:0;padding:10px 12px;border-radius:10px;border:1px dashed var(--line);color:var(--muted);font-size:13.5px;line-height:1.55}

@media (max-width:1180px){
  .fad-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:1000px){
  .fad-hero-in{grid-template-columns:auto minmax(0,1fr)}
  .fad-cta{grid-column:1/-1;width:auto;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .fad-pair,.fad-rq{grid-template-columns:minmax(0,1fr)}
  .fad .sect{padding:14px 12px 14px}
  .fad .sect.has-more > h4{padding-right:0;margin-bottom:34px}
  .fad-more{top:46px;left:12px;right:auto;padding:0}
  .fad-cover{height:132px}
  .fad-hero-in{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:-54px;padding:0 16px 18px}
  .fad-logo{width:96px;height:96px;border-radius:24px}
  .fad-logo b{font-size:34px}
  .fad-cta{grid-template-columns:minmax(0,1fr)}
  .fad-name{font-size:clamp(26px,8vw,34px)}
  .fad-foot{padding:12px}
  .mefa-two{grid-template-columns:minmax(0,1fr)}
  .mefa-h .me-btn{margin-left:0;flex:1 1 100%}
  .mefa-act > .me-btn,.mefa-note > .me-btn{flex:1 1 100%}
  .fadc-bar > span{flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){
  .fad .sect{-webkit-backdrop-filter:none;backdrop-filter:none;background:color-mix(in srgb, var(--panel) 72%, transparent)}
  a.fad-dsc,a.fad-go,.fadc-card,.mefa-sw i,.mefa-sw i::after{transition:none}
}
/* Вольт: живой фон просвечивает сквозь налёт, под блоками сплошной --ink (как voltfix). */
html[data-theme="voltage"] .fad .sect{background-color:var(--ink)}

/* ── smallfix 15.09.2026: таблицы страниц игрока, семьи и сервера на телефоне ──
   Общее table{min-width:700px} делало любую таблицу страницы шире телефона, и
   правый край выглядел обрезанным. До 600 px: без него, второстепенные столбцы
   .nx скрыты (stblNarrow в коде). Где таблица всё равно шире блока, край
   растворяется (scrollHint ставит .sx-r/.sx-l только при настоящем переполнении,
   поэтому на ПК, где таблицы влезают, вид прежний). Маска только прозрачность,
   цвета темы не трогает. */
@media (max-width:599.98px){
  .ent-panel .stbl{min-width:0}
  .ent-panel .stbl .nx{display:none}
  .ent-panel .stbl-nx th{white-space:normal;vertical-align:bottom}
  .ent-panel .stbl-nx th,.ent-panel .stbl-nx td{padding-left:7px;padding-right:7px}
}
.ent-panel .mscroll.sx-r{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent)}
.ent-panel .mscroll.sx-l{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px);mask-image:linear-gradient(to right,transparent,#000 28px)}
.ent-panel .mscroll.sx-l.sx-r{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 48px),transparent)}

/* ── smallfix2 15.09.2026: таблицы разделов на телефоне (Главная, Игроки, Семьи,
   Сезоны, Рекорды, Карты, Сервера) ──
   До 600 px у таблиц с записью в TBL_NARROW_KEYS/MINI: без общего min-width:700px,
   скрытые столбцы nx-cN, узкие поля, без запасных min-width у чисел и полос,
   имя не шире экрана минус числа (длинное с многоточием), онлайн по содержимому.
   Край таблицы, которая шире блока, растворяется (.tbl-scroll.sx-r/.sx-l от
   scrollHint, только при настоящем переполнении). На ПК вид прежний. Цвета не
   трогаются: маска это только прозрачность. */
@media (max-width:599.98px){
  table.tbl-nx{min-width:0}
  table.tbl-nx.nx-c1 tr > :nth-child(1),
  table.tbl-nx.nx-c2 tr > :nth-child(2),
  table.tbl-nx.nx-c3 tr > :nth-child(3),
  table.tbl-nx.nx-c4 tr > :nth-child(4),
  table.tbl-nx.nx-c5 tr > :nth-child(5),
  table.tbl-nx.nx-c6 tr > :nth-child(6),
  table.tbl-nx.nx-c7 tr > :nth-child(7),
  table.tbl-nx.nx-c8 tr > :nth-child(8),
  table.tbl-nx.nx-c9 tr > :nth-child(9),
  table.tbl-nx.nx-c10 tr > :nth-child(10),
  table.tbl-nx.nx-c11 tr > :nth-child(11),
  table.tbl-nx.nx-c12 tr > :nth-child(12){display:none}
  table.tbl-nx th,table.tbl-nx td{padding-left:8px;padding-right:8px}
  table.tbl-nx th{white-space:normal;vertical-align:bottom}
  table.tbl-nx .num,table.tbl-nx .wr,table.tbl-nx .barcell{min-width:0}
  table.tbl-nx .rank{width:auto}
  table.tbl-nx .barcell i{left:4px;right:4px}
  table.tbl-nx .adcell{min-width:0;gap:7px}
  table.tbl-nx .adcell b{width:auto}
  table.tbl-nx .adcell .split{min-width:36px}
  table.tbl-nx .who{max-width:calc(100vw - 240px)}
  table.tbl-nx .who > span{min-width:0}
  table.tbl-nx .srvon{width:auto;min-width:0}
  table.tbl-nx .srvon-td:not(.is-full) .srvon-p{display:none}
}
.tbl-scroll.sx-r{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent)}
.tbl-scroll.sx-l{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px);mask-image:linear-gradient(to right,transparent,#000 28px)}
.tbl-scroll.sx-l.sx-r{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 48px),transparent)}

/* ── vzpmaps 15.09.2026: карты ВЗП, список /maps и страница /maps/<карта> ──
   Цвета только из переменных темы: атака --win, защита --lose, как в полосе атаки и
   защиты на сайте; зона и свой цвет доски --acc. Проверено в g5, mono, voltage на
   1920, 900, 400, 360. Холст доски берёт те же переменные через cssv(). */
.vm-seg{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}
.vm-seg button{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--line);
  background:color-mix(in srgb, var(--panel) 72%, transparent);color:var(--text-2);font:inherit;font-size:14px;cursor:pointer;transition:border-color .15s,color .15s,background-color .15s}
.vm-seg button:hover{color:var(--text);border-color:color-mix(in srgb, var(--acc) 50%, var(--line))}
.vm-seg button[aria-pressed="true"]{color:var(--text);font-weight:600;border-color:color-mix(in srgb, var(--acc) 60%, var(--line));background:color-mix(in srgb, var(--acc) 15%, var(--panel))}
.vm-seg button:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.vm-seg u{margin-left:8px;text-decoration:none;font-family:var(--mono);font-size:12.5px;font-weight:400;color:var(--muted)}
.vm-group{margin:20px 0 10px;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.vm-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,264px),1fr))}
a.vm-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  background:var(--panel);color:var(--text);text-decoration:none;transition:border-color .15s,box-shadow .15s}
a.vm-card:hover{border-color:color-mix(in srgb, var(--acc) 55%, var(--line));box-shadow:0 14px 34px -26px var(--ink)}
a.vm-card:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
a.vm-card.thin{opacity:.74}
.vm-thumb{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;color:var(--acc);
  background:radial-gradient(90% 120% at 80% 0%, color-mix(in srgb, var(--acc) 12%, transparent), transparent 70%),var(--ink2)}
.vm-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vm-thumb > svg{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.3}
.vm-thumb.has > svg,.vm-thumb.has .vm-soon{display:none}
.vm-soon{position:absolute;right:12px;bottom:10px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.vm-sz{position:absolute;left:10px;top:10px;min-width:30px;height:28px;padding:0 8px;display:grid;place-items:center;border-radius:8px;
  border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 84%, transparent);font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text)}
.vm-cb{display:flex;flex-direction:column;gap:8px;padding:12px 14px 14px;min-width:0}
.vm-cn{font-size:16.5px;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vm-cs{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.vm-ad{display:flex;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:12.5px}
.vm-ad .a{color:var(--win)}
.vm-ad .d{color:var(--lose)}

/* страница карты */
.vm{min-width:0;padding-bottom:8px}
.vm .ent-bar{margin-bottom:10px}
.vm-top{margin:0 0 12px}
.vm-id{min-width:0}
.vm-kick{margin:0;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.vm-h1{margin:4px 0 0;font-family:var(--champ-family,var(--sans));font-weight:var(--champ-weight,800);text-transform:var(--champ-tt,none);
  letter-spacing:var(--champ-track,0);font-size:clamp(26px,3.2vw,40px);line-height:1.12;color:var(--text);overflow-wrap:anywhere}
.vm-under{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;margin-top:14px}
.vm-under .vm-nums{margin:0}
.vm-srv{flex:0 1 230px;min-width:0;max-width:100%}
.vm-srv .sel{width:100%}

.vm-stage{position:relative;height:420px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--ink2);
  user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.vm-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y;cursor:grab;outline:none}
.vm-stage.on canvas{touch-action:none}
.vm-stage.board:not(.hand) canvas{cursor:crosshair}
.vm-stage.grab canvas{cursor:grabbing}
.vm-empty{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;
  max-width:calc(100% - 32px);padding:14px 20px;border-radius:14px;border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 84%, transparent);
  text-align:center;pointer-events:none}
.vm-empty b{font-size:16px;font-weight:700;color:var(--text)}
.vm-empty i{font-style:normal;font-size:13.5px;color:var(--muted)}
.vm-stage.board .vm-empty{top:auto;bottom:70px;transform:translateX(-50%);padding:8px 14px}
.vm-stage.board .vm-empty i{display:none}
.vm-ctrl{position:absolute;top:10px;right:10px;z-index:3;display:flex;gap:6px}
.vm-ib{display:inline-grid;place-items:center;flex:none;width:38px;height:38px;padding:0;border-radius:10px;border:1px solid var(--line);
  background:color-mix(in srgb, var(--ink) 86%, transparent);color:var(--text-2);font:inherit;cursor:pointer;transition:border-color .15s,color .15s,background-color .15s}
.vm-ib:hover:not(:disabled){color:var(--text);border-color:color-mix(in srgb, var(--acc) 55%, var(--line))}
.vm-ib:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.vm-ib:disabled{opacity:.4;cursor:default}
.vm-ib svg{display:block;width:19px;height:19px}
.vm-ib[aria-pressed="true"]{color:var(--text);border-color:var(--acc);background:color-mix(in srgb, var(--acc) 22%, var(--ink))}
.vm-ib.ask{color:var(--neg);border-color:var(--neg)}
.vm-tac{display:inline-flex;gap:8px;width:auto;padding:0 13px;font-size:14px;font-weight:600;color:var(--text)}
.vm-ltr{font-family:var(--mono);font-size:15px;font-weight:800}
.vm-ltr-ma{color:var(--win)}
.vm-ltr-md{color:var(--lose)}
.vm-sw i{display:block;width:16px;height:16px;border-radius:50%;box-shadow:0 0 0 2px var(--ink)}
.vm-sw-a i{background:var(--win)}
.vm-sw-d i{background:var(--lose)}
.vm-sw-n i{background:var(--acc)}
.vm-tools{position:absolute;left:10px;right:10px;bottom:10px;z-index:3;display:flex;align-items:center;gap:6px;padding:5px;overflow-x:auto;
  scrollbar-width:none;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb, var(--ink) 88%, transparent)}
.vm-tools::-webkit-scrollbar{display:none}
.vm-sep{flex:none;width:1px;height:26px;margin:0 3px;background:var(--line)}
.vm-hint{position:absolute;left:50%;top:58px;z-index:4;max-width:calc(100% - 24px);transform:translateX(-50%);padding:7px 12px;border-radius:10px;
  border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 90%, transparent);font-size:13.5px;color:var(--text-2);text-align:center;
  pointer-events:none;opacity:0;transition:opacity .2s}
.vm-hint.on{opacity:1}
.vm-txt{position:absolute;z-index:5;width:220px}
.vm-txt .inp{width:100%;min-width:0}
.vm-stage.vm-full{position:fixed;inset:0;z-index:95;height:auto!important;border:0;border-radius:0}
html.vm-lock,html.vm-lock body{overflow:hidden}
.vm-stage.vm-full .vm-actions{position:absolute;left:10px;top:10px;z-index:3;margin:0;max-width:calc(100% - 250px)}

.vm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.vm-btn{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--line);
  background:color-mix(in srgb, var(--panel) 80%, transparent);color:var(--text-2);font:inherit;font-size:14px;line-height:1.2;text-decoration:none;cursor:pointer;
  transition:border-color .15s,color .15s,background-color .15s}
.vm-btn svg{flex:none;width:18px;height:18px}
.vm-btn:hover:not(:disabled){color:var(--text);border-color:color-mix(in srgb, var(--acc) 60%, var(--line))}
.vm-btn:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.vm-btn:disabled{opacity:.5;cursor:default}
.vm-btn.pri{color:var(--text);font-weight:600;border-color:color-mix(in srgb, var(--acc) 60%, var(--line));background:color-mix(in srgb, var(--acc) 18%, var(--panel))}
.vm-btn.warn{color:var(--neg)}
.vm-btn.warn:hover:not(:disabled){color:var(--text);border-color:var(--neg);background:color-mix(in srgb, var(--neg) 14%, var(--panel))}
.vm-msg:empty{display:none}
.vm-msg{margin-top:10px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);border-left:3px solid var(--acc);background:color-mix(in srgb, var(--panel) 70%, transparent)}
.vm-msg.bad{border-left-color:var(--neg)}
.vm-msg .vm-note{margin:0}
.vm-msg .vm-btn{margin-top:10px}
.vm-link{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.vm-link .inp{flex:1 1 280px;min-width:0;font-family:var(--mono);font-size:13.5px}
.vm-note{margin:10px 0 0;font-size:13.5px;line-height:1.55;color:var(--muted)}
.vm-note b{color:var(--text)}

.vm-nums{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px;margin:14px 2px 0}
.vm-num{display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap}
.vm-num b{font-family:var(--mono);font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.vm-num i{font-style:normal;font-family:var(--mono);font-size:12.5px;letter-spacing:.03em;color:var(--muted)}
.vm-num.a b{color:var(--win)}
.vm-num.d b{color:var(--lose)}
.vm-mine{display:grid;gap:8px;margin:14px 0 0}
.vm-mrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px;border-radius:12px;
  border:1px solid color-mix(in srgb, var(--acc) 40%, var(--line));background:color-mix(in srgb, var(--acc) 8%, var(--panel))}
.vm-mk{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.vm-mrow > a{color:var(--text);font-weight:700;text-decoration:none;overflow-wrap:anywhere}
.vm-mrow > a:hover{text-decoration:underline;text-underline-offset:3px}
.vm-mrow > span:last-child{font-size:14px;color:var(--text-2)}
.vm-mrow b{color:var(--text)}
.vm-dets{display:grid;gap:10px;margin-top:16px}
.vm-dets > .vm-note{margin:4px 2px 0}
/* Подложка сплошная: сквозь полупрозрачную пометки AFK и DISBALANCE в mono теряли контраст. */
.vm-det{min-width:0;border:1px solid color-mix(in srgb, var(--line) 90%, transparent);border-radius:var(--r);background-color:var(--ink)}
.vm-det > summary{display:flex;align-items:center;gap:10px;min-height:50px;padding:0 16px;list-style:none;cursor:pointer;font-weight:600;font-size:15px;color:var(--text)}
.vm-det > summary::-webkit-details-marker{display:none}
.vm-det > summary::after{content:"";flex:none;margin-left:auto;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.vm-det[open] > summary::after{transform:rotate(-135deg) translateY(-2px)}
.vm-det > summary em{font-style:normal;font-family:var(--mono);font-size:12.5px;font-weight:400;color:var(--muted)}
.vm-det > summary:focus-visible{outline:2px solid var(--acc);outline-offset:-2px;border-radius:var(--r)}
.vm-dbody{min-width:0;padding:0 16px 16px}
.vm-dbody h5{margin:14px 0 8px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.vm-dbody h5:first-child{margin-top:2px}
.vm .stbl{min-width:0}
.vm .wc-map{display:none}
.vm .wlist{margin:0}
@media (max-width:600px){
  .vm-ctrl{top:8px;right:8px;gap:5px}
  .vm-ib{width:36px;height:36px}
  .vm-ib.vm-tac{width:auto;padding:0 11px}
  .vm-ib.vm-z{display:none}
  .vm-tools{left:8px;right:8px;bottom:8px}
  .vm-nums{gap:6px 16px}
  .vm-num b{font-size:16.5px}
  .vm-det > summary{padding:0 12px}
  .vm-dbody{padding:0 12px 12px}
  .vm-stage.vm-full .vm-actions{max-width:calc(100% - 150px)}
  .vm-stage.vm-full .vm-actions .vm-btn span{display:none}
  .vm-srv{flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){
  a.vm-card,.vm-btn,.vm-ib,.vm-hint,.vm-det > summary::after{transition:none}
}
/* ── vzpmaps2 15.09.2026: живая карта GTA на странице карты ВЗП ──
   Список карт поверх карты (широкий экран), выбор карты списком над картой (узкий), подложка
   «Спутник | Картинка», пометка «зона ещё не нанесена», подпись правообладателя карты.
   Цвета из темы; спутник это сама картинка. Проверено в g5, mono, voltage на 1920, 900, 400, 360. */
.vm-list{position:absolute;left:10px;top:10px;z-index:3;display:flex;flex-direction:column;width:218px;max-height:calc(100% - 62px);
  border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb, var(--ink) 90%, transparent);overflow:hidden}
.vm-lh{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;min-height:40px;padding:0 12px;border:0;background:none;
  color:var(--text);font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer}
.vm-lh i{flex:none;width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(2px) rotate(-135deg);transition:transform .15s}
.vm-list.shut .vm-lh i{transform:translateY(-2px) rotate(45deg)}
.vm-lh:focus-visible{outline:2px solid var(--acc);outline-offset:-2px;border-radius:12px}
.vm-list.shut .vm-lseg,.vm-list.shut .vm-lul{display:none}
.vm-lseg{display:flex;flex:none;gap:4px;padding:0 10px 8px}
.vm-lseg button{flex:1 1 0;min-height:30px;border-radius:8px;border:1px solid var(--line);background:none;color:var(--text-2);font:inherit;font-size:13px;cursor:pointer}
.vm-lseg button:hover{color:var(--text)}
.vm-lseg button[aria-pressed="true"]{color:var(--text);font-weight:600;border-color:color-mix(in srgb, var(--acc) 60%, var(--line));background:color-mix(in srgb, var(--acc) 18%, var(--ink))}
.vm-lseg button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.vm-lul{list-style:none;margin:0;padding:0 6px 8px;overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}
.vm-lul a,.vm-lul span{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;padding:0 8px;border-radius:8px;
  color:var(--text-2);font-size:14px;line-height:1.2;text-decoration:none}
.vm-lul a:hover{color:var(--text);background:color-mix(in srgb, var(--acc) 12%, var(--ink))}
.vm-lul a:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.vm-lul span[aria-current]{color:var(--text);font-weight:600;background:color-mix(in srgb, var(--acc) 22%, var(--ink));box-shadow:inset 3px 0 0 var(--acc)}
.vm-lul b{flex:none;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--text-2)}
.vm-stage.board .vm-list{display:none}
.vm-layer{display:flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb, var(--ink) 88%, transparent)}
.vm-layer.hidden{display:none}
.vm-layer button{min-height:32px;padding:0 10px;border:0;border-radius:8px;background:none;color:var(--text-2);font:inherit;font-size:13px;cursor:pointer}
.vm-layer button:hover{color:var(--text)}
.vm-layer button[aria-pressed="true"]{color:var(--text);font-weight:600;background:color-mix(in srgb, var(--acc) 24%, var(--ink))}
.vm-layer button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.vm-attr{position:absolute;right:8px;bottom:6px;z-index:2;padding:1px 7px;border-radius:6px;background:color-mix(in srgb, var(--ink) 82%, transparent);
  font-size:11.5px;line-height:1.5;color:var(--text);pointer-events:none}
.vm-stage.board .vm-attr{bottom:66px}
.vm-nozone{position:absolute;left:10px;bottom:10px;z-index:2;max-width:calc(100% - 150px);padding:5px 10px;border-radius:9px;border:1px solid var(--line);
  background:color-mix(in srgb, var(--ink) 88%, transparent);font-family:var(--mono);font-size:12.5px;color:var(--text);pointer-events:none}
.vm-stage.board .vm-nozone{display:none}
.vm-pick{display:none;max-width:100%;margin:0 0 10px}
.vm-pick .sel{width:100%}
@media (max-width:899px){
  .vm-list{display:none}
  .vm-pick{display:block}
}
@media (max-width:600px){
  .vm-ib.vm-z{display:inline-grid}
  .vm-layer button{padding:0 8px}
  .vm-nozone{left:8px;bottom:8px;font-size:12px}
}
@media (prefers-reduced-motion:reduce){
  .vm-lh i{transition:none}
}
/* ── vzpmaps2 15.09.2026: конец ── */
/* ── vzpmaps 15.09.2026: конец ── */

/* ── mepage 15.09.2026: «Моя страница» вкладками (/me, /me/chars, /me/family,
   /me/disputes, /me/settings), обзор своего персонажа, напоминания, настройки.
   Только переменные темы. Свои цвета только у ступени ника (DTIERS, как у ников
   везде, через --tc) и у образцов тем в «Настройках» (как в панели «Оформление»).
   Проверено в g5, mono, voltage на 1920, 900, 400 и 360 px. */
.me-tabs{
  position:sticky;top:var(--head-h,0px);z-index:30;display:flex;gap:4px;margin:14px 0 0;padding:5px;
  overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;
  border:1px solid var(--line2);border-radius:14px;background:color-mix(in srgb, var(--ink) 90%, transparent);
  -webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);
}
.me-tabs::-webkit-scrollbar{display:none}
.me-tab{
  flex:none;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 15px;border-radius:10px;
  color:var(--text-2);text-decoration:none;font-size:14.5px;line-height:1;white-space:nowrap;transition:background-color .15s,color .15s;
}
.me-tab:hover{color:var(--text);background:color-mix(in srgb, var(--text) 6%, transparent)}
.me-tab[aria-current="page"]{color:var(--text);font-weight:600;background:color-mix(in srgb, var(--acc) 15%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--acc) 30%, transparent)}
.me-tab:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.me-tab .n{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--muted);padding:2px 7px;border-radius:999px;background:color-mix(in srgb, var(--text) 8%, transparent)}
.me-tab[aria-current="page"] .n{color:var(--text)}
.me-tab .n.hot,.me-tab[aria-current="page"] .n.hot{color:var(--ink);background:var(--acc-hi)}
.me-tabs + .me-backbtn,.me-alerts + .me-backbtn{margin-top:14px}
.me-alerts{display:grid;gap:8px;margin:14px 0 0}
.me-alerts .mefa-note p{flex-basis:300px}

/* переключатель персонажей на обзоре */
.me-sw{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.me-swb{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;max-width:100%;min-width:0;padding:6px 14px;border-radius:12px;cursor:pointer;
  font:inherit;font-size:14.5px;color:var(--text-2);text-align:left;
  border:1px solid var(--line2);background:color-mix(in srgb, var(--panel) 55%, var(--ink));transition:border-color .15s,background-color .15s;
}
.me-swb:hover{border-color:color-mix(in srgb, var(--acc) 45%, var(--line))}
.me-swb[aria-pressed="true"]{border-color:var(--acc);background:color-mix(in srgb, var(--acc) 14%, var(--ink));cursor:default}
.me-swb:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.me-swb img{flex:none;width:18px;height:18px}
.me-swn{min-width:0;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-sws{flex:none;font-family:var(--mono);font-size:12.5px;color:var(--muted)}

/* шапка персонажа */
.me .sect.me-ch{padding:20px 22px}
.me-ch-kick{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.me-tier{
  display:inline-flex;align-items:center;gap:7px;padding:3px 10px;border-radius:999px;letter-spacing:.04em;text-transform:none;color:var(--text);
  border:1px solid color-mix(in srgb, var(--tc) 55%, var(--line));background:color-mix(in srgb, var(--tc) 14%, var(--ink));
}
.me-tier::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--tc)}
.me-ch-name{
  margin:6px 0 0;font-family:var(--champ-family);font-weight:var(--champ-weight);text-transform:var(--champ-tt);letter-spacing:var(--champ-track);
  font-size:clamp(24px,3vw,38px);line-height:1.14;color:var(--text);overflow-wrap:anywhere;
}
.me-ch-name a,.me-ch-name span{color:var(--text);text-decoration:none}
.me-ch-name a:hover{text-decoration:underline;text-underline-offset:4px}
.me-ch .ent-meta{margin-top:12px}
.me-ch-tiles{margin-top:16px}
.me-ch-tiles:empty{display:none}
.me .mstats{margin-bottom:0}
.me .sect > .mstats + *,.me-ch-tiles + .me-ch-act{margin-top:14px}
.me-ch-act,.me-more{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}
.me-more{justify-content:flex-end;margin-top:12px}
.me-delta{color:var(--muted)}
.me-delta.up{color:var(--pos)}
.me-delta.down{color:var(--neg)}
.me-h5{margin:18px 0 10px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.me .sect > h4 + .me-aw .me-h5{margin-top:0}
.me-aw .awards-row{margin:0}
.me-wait{font-family:var(--mono);font-size:13.5px}

/* обзор без персонажа */
.me-steps{margin:0 0 16px;padding-left:22px;color:var(--text-2);font-size:15px;line-height:1.6;max-width:72ch}
.me-steps li + li{margin-top:6px}

/* семья на вкладке «Персонажи» у владельца */
.me-fam-own{margin:0 0 4px}

/* настройки */
.me-acc{display:flex;align-items:center;gap:14px;min-width:0}
.me-acc img{flex:none;width:48px;height:48px;border-radius:50%;background:var(--panel2)}
.me-acc img:not([src]){visibility:hidden}
.me-acc .me-meta{margin-top:4px}
.me-acc + .me-ch-act{margin-top:14px}
.me-ch-act + .me-muted{margin-top:12px}
.me-themes{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr))}
.me-themes + .me-muted{margin-top:12px}
.me-th{
  display:flex;align-items:center;gap:12px;min-height:58px;min-width:0;padding:9px 12px;border-radius:12px;cursor:pointer;
  font:inherit;font-size:15px;color:var(--text-2);text-align:left;
  border:1px solid var(--line2);background:color-mix(in srgb, var(--panel) 60%, var(--ink));transition:border-color .15s,background-color .15s,color .15s;
}
.me-th:hover{color:var(--text);border-color:var(--line)}
.me-th[aria-pressed="true"]{color:var(--text);font-weight:600;border-color:var(--acc);background:color-mix(in srgb, var(--acc) 16%, var(--ink))}
.me-th:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.me-th-sw{flex:none;position:relative;display:block;width:54px;height:38px;border-radius:7px;overflow:hidden;border:1px solid var(--line)}
.me-th-sw i{position:absolute;display:block}
.me-th-sw i.head{left:0;right:0;top:0;height:8px}
.me-th-sw i.card{left:5px;right:5px;top:13px;height:12px;border-radius:2px}
.me-th-sw i.acc{left:5px;width:22px;top:28px;height:4px;border-radius:2px}

@media (max-width:600px){
  .me .sect.me-ch{padding:16px 14px}
  .me-tab{height:36px;padding:0 12px;font-size:14px}
  .me-ch-act > .me-btn{flex:1 1 auto}
  .me-swb{flex:1 1 100%}
  .me-alerts .mefa-note > .me-btn{flex:1 1 100%}
}

/* ── Медиа (media 17.09.2026): лента роликов, эфиры, страница медийщика ──
   Имена классов начинаются на mda-, потому что md- уже занято медалями наград.
   Цвета только из переменных темы: подложки --panel/--panel2, рамки --line/--line2,
   подписи --muted/--dim, акцент --acc, «в эфире» --neg. Зашитых hex нет. */
#mediaLi[hidden]{display:none}
.mda{display:grid;gap:22px;min-width:0}
.mda-sect{display:grid;gap:14px;min-width:0}
.mda-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
.mda-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--r);
  background:var(--panel2);overflow:hidden;transition:border-color .15s}
.mda-card:hover{border-color:color-mix(in srgb, var(--acc) 45%, var(--line))}
.mda-shot{position:relative;width:100%;aspect-ratio:16/9;min-width:0;background:color-mix(in srgb, var(--ink) 60%, var(--panel));
  border:0;padding:0;margin:0;display:block;cursor:pointer;overflow:hidden}
.mda-shot img{width:100%;height:100%;object-fit:cover;display:block}
.mda-shot:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.mda-shot::after{content:"";position:absolute;inset:0;background:color-mix(in srgb, var(--ink) 22%, transparent);opacity:0;transition:opacity .15s}
.mda-shot:hover::after{opacity:1}
.mda-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;
  width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb, var(--ink) 62%, transparent);border:1px solid color-mix(in srgb, var(--text) 45%, transparent);color:var(--text)}
.mda-shot:hover .mda-play{background:var(--acc);border-color:var(--acc);color:var(--ink)}
.mda-play svg{width:22px;height:22px;margin-left:3px}
.mda-frame{width:100%;aspect-ratio:16/9;background:var(--ink)}
.mda-frame iframe{width:100%;height:100%;border:0;display:block}
.mda-live{position:absolute;left:10px;top:10px;z-index:1;display:inline-flex;align-items:center;gap:6px;
  padding:3px 10px;border-radius:999px;font-family:var(--mono);font-size:12px;line-height:1.3;
  color:var(--text);background:color-mix(in srgb, var(--neg) 78%, var(--ink));border:1px solid var(--neg)}
.mda-live i{width:7px;height:7px;border-radius:50%;background:var(--text);flex:none}
.mda-vw{position:absolute;right:10px;top:10px;z-index:1;padding:3px 9px;border-radius:999px;font-family:var(--mono);font-size:12px;
  color:var(--text);background:color-mix(in srgb, var(--ink) 68%, transparent);border:1px solid color-mix(in srgb, var(--text) 25%, transparent)}
.mda-body{display:grid;gap:7px;padding:12px 14px 14px;min-width:0}
.mda-t{margin:0;font-size:15px;font-weight:650;line-height:1.4;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
a.mda-t{text-decoration:none}
a.mda-t:hover{text-decoration:underline}
.mda-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-family:var(--mono);font-size:12.5px;color:var(--muted);min-width:0}
.mda-meta a{color:var(--text-2);text-decoration:none}
.mda-meta a:hover{color:var(--text);text-decoration:underline}
.mda-game{color:var(--text-2)}
.mda-people{display:flex;flex-wrap:wrap;gap:8px}
.mda-chip{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:4px 14px 4px 5px;border-radius:999px;
  text-decoration:none;color:var(--text-2);background:color-mix(in srgb, var(--panel) 80%, transparent);border:1px solid var(--line)}
.mda-chip:hover{color:var(--text);border-color:color-mix(in srgb, var(--acc) 55%, var(--line))}
.mda-chip img{width:28px;height:28px;border-radius:50%;flex:none;object-fit:cover;background:var(--panel)}
.mda-chip b{font-weight:650}
.mda-chip span{font-family:var(--mono);font-size:12px;color:var(--muted)}
.mda-empty{padding:26px 18px;border:1px dashed var(--line);border-radius:var(--r);color:var(--muted);text-align:center;line-height:1.55}
.mda-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px 16px;padding-bottom:4px;min-width:0}
.mda-head > img{width:72px;height:72px;border-radius:50%;flex:none;object-fit:cover;background:var(--panel2);border:1px solid var(--line)}
.mda-hbox{min-width:0;flex:1 1 260px;display:grid;gap:6px}
.mda-hbox h1{margin:0;font-size:26px;font-weight:750;color:var(--text);line-height:1.2;overflow-wrap:anywhere}
.mda-hmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-family:var(--mono);font-size:13px;color:var(--muted)}
.mda-hmeta a{color:var(--text-2);text-decoration:none}
.mda-hmeta a:hover{color:var(--text);text-decoration:underline}
.mda-chan{display:flex;flex-wrap:wrap;gap:8px}
.mda-ch{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border-radius:10px;text-decoration:none;
  font-size:14px;color:var(--text-2);background:color-mix(in srgb, var(--panel) 80%, transparent);border:1px solid var(--line)}
.mda-ch:hover{color:var(--text);border-color:var(--acc)}
.mda-ch svg{width:17px;height:17px;flex:none}
.mda-ch.on{color:var(--text);border-color:var(--neg);background:color-mix(in srgb, var(--neg) 14%, transparent)}
.mda-note{padding:12px 14px;border-radius:12px;border:1px solid var(--line);
  background:color-mix(in srgb, var(--panel) 70%, transparent);color:var(--text);font-size:14.5px;line-height:1.5}
.mda-note.mid{border-color:color-mix(in srgb, var(--acc) 60%, var(--line));background:color-mix(in srgb, var(--acc) 10%, var(--panel))}
.mda-note.bad{border-color:color-mix(in srgb, var(--neg) 60%, var(--line));background:color-mix(in srgb, var(--neg) 10%, var(--panel))}
.mda-terms{margin:0;padding:12px 14px;border-radius:10px;border:1px dashed var(--line);background:color-mix(in srgb, var(--panel) 45%, transparent);
  color:var(--text-2);font-size:14px;line-height:1.6;white-space:pre-wrap;max-height:260px;overflow:auto;overscroll-behavior:contain}
.mda-agree{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.5;color:var(--text);cursor:pointer}
.mda-agree input{width:20px;height:20px;flex:none;margin:1px 0 0;accent-color:var(--acc)}
.mda-kv{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;color:var(--text-2)}
.mda-kv b{color:var(--text);font-weight:650}
@media (max-width:760px){
  .mda{gap:18px}
  .mda-head > img{width:56px;height:56px}
  .mda-hbox h1{font-size:22px}
}
@media (max-width:560px){
  .mda-grid{grid-template-columns:minmax(0,1fr)}
}
/* votesrv 17.09.2026: на «Голосовании» в полосе нужен только выбор сервера */
.bar.bar-srv #search{display:none}
/* recruitbtn 17.09.2026: кнопка «Добавить семью» на странице «Семьи» */
.rc-add{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 16px}
.rc-add .me-btn{flex:none}
.rc-add p{margin:0;flex:1 1 260px;min-width:0}
/* ── memedia 17.09.2026: вкладка «Медиа» на «Моей странице» ровнее ──
   Правила висят на своём .mda-form и .mda-terms-box: общий .mefa делят с
   редактором «О семье», его трогать нельзя. Цвета только из переменных темы. */
.mda-form{gap:18px}
.mda-form .mefa-hint{margin-top:-9px}
.mda-form .mefa-act{gap:10px}
.mda-form .me-btn{min-height:42px}
.mda-terms-box{display:grid;gap:10px;min-width:0;padding:14px;border-radius:12px;
  border:1px solid var(--line2);background:color-mix(in srgb, var(--panel) 55%, transparent)}
.mda-terms-box > h6{margin:0;font-size:15px;font-weight:700;color:var(--text)}
.mda-terms{margin:0;min-width:0;font-family:var(--sans);font-size:14.5px;line-height:1.6;
  color:var(--text-2);white-space:pre-wrap;overflow-wrap:anywhere;
  /* memedia2 17.09.2026: гасим остатки прежнего вида, иначе рамка в рамке */
  padding:0;border:0;border-radius:0;background:none;max-height:none;overflow:visible}
.mda-terms.cut{max-height:148px;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 62%,transparent);mask-image:linear-gradient(180deg,#000 62%,transparent)}
.mda-more{justify-self:start;padding:0;border:0;background:none;cursor:pointer;font:inherit;
  font-size:14px;color:var(--acc-hi);text-decoration:underline}
.mda-more:hover{color:var(--text)}
.mda-more:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.mefa-note + .me-lead{margin-top:14px}
.mda-kv + .me-btn{margin-top:4px}
/* ── откаты (cooldown 17.09.2026, ★ раздел «Откаты» убран 17.09.2026,
   слово гостя: «функционал постепенно перенесём в точки») ───────────────
   Остались только общие места: строка на странице семьи и точка в списке
   семей. Своя колонка в «Точках» (openTerr) слов и цвета не добавляет,
   красит ячейку таблицы напрямую через style.color.
   Цвета только из переменных темы: свободно --pos, идёт откат --muted. */
/* Точка у имени семьи в списке семей. */
.cd-dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--line2)}
.cd-dot.cd-free{background:var(--pos)}
.cd-dot.cd-busy{background:var(--muted);opacity:.55}
.cd-dot.cd-dot-wait{background:none}
/* Строка на странице семьи. Кладётся в шапку фактов (класс в FACTS). */
.cd-line{margin:0 0 12px;font-size:14px;color:var(--muted)}
.cd-line b{color:var(--text);font-weight:600}
.cd-line .cd-ok{color:var(--pos)}

/* seo3 21.09.2026: место под таблицы резервируется ДО отрисовки.
   Иначе подвал сперва встаёт сразу под шапкой, а потом прыгает вниз, и это
   главный скачок вёрстки на странице (CLS 0.9 на телефоне, 0.19 на компьютере).
   На отрисованную страницу правило не влияет: как только в #view появилось
   содержимое, :empty перестаёт совпадать и правило снимается. */
#view:empty{min-height:78vh}
#view:empty{min-height:78svh}

/* seo4 21.09.2026: место держится и ПОСЛЕ первой отрисовки, а не только пока
   #view пуст. Почему: карточка игрока рисуется в два приёма, сначала заготовка
   на 300 px, потом настоящее содержимое. Пустой #view держал 78svh, заготовка
   его ужимала, подвал поднимался в видимую часть экрана, а через полсекунды
   уезжал вниз. Два скачка и давали CLS 0,29 на телефоне и 0,19 на компьютере.
   Высота взята с запасом (почти целый экран), чтобы подвал не успевал попасть
   в видимую часть ни на одной ширине: скачок засчитывается только тому, что
   видно. На длинных страницах правило ни на что не влияет. */
html[data-card] #view{min-height:calc(100vh - 40px)}
html[data-card] #view{min-height:calc(100svh - 40px)}


/* underline 21.09.2026: линия подчёркивания рвалась под хвостиками букв (д, у, р) */
a,.faq-lnk,.fad-link,.tv-intro a,.home-intro a{text-decoration-skip-ink:none}
