/* Компоненты внутренних страниц (pvp, vanilla, anarchy, donate, faq). Каркас, навигация и цвета берутся из site.css / nav.css. */
.sub-page .lead{text-align:center;color:#ccc;font-size:1.08em;max-width:720px;margin:0 auto 6px}
.sub-page .cta-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:14px 0 8px}
.sub-page .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border-radius:9px;font-weight:700;text-decoration:none!important;background:rgba(255,255,255,.14);color:#fff!important;border:1px solid rgba(255,255,255,.25);margin:2px 4px 2px 0}
.sub-page .btn:hover{background:rgba(255,255,255,.24)}
.sub-page .btn.p{background:linear-gradient(135deg,#00ccff,#00ff80);color:#000!important;border:0}
.sub-page .btn.p:hover{filter:brightness(1.08)}
.sub-page .sec{margin:0;padding:22px 0 6px;border-top:1px solid rgba(0,255,128,.2)}
.sub-page .sec:first-of-type{border-top:0}
.sub-page .sec h2{margin:0 0 12px;font-size:1.4em}
.sub-page .sec p{margin:0 0 12px;line-height:1.6}
.sub-page .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0}
.sub-page .card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:14px}
.sub-page .card h3{margin:0 0 6px;font-size:1.05em;color:#00ff80}
.sub-page .card p{margin:0;color:#ccc;font-size:.95em}
.sub-page .tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0 14px}
.sub-page .tw table{width:100%;border-collapse:collapse;min-width:520px}
.sub-page caption{text-align:left;color:#ccc;padding:0 0 8px;font-size:.92em}
.sub-page .tw th,.sub-page .tw td{text-align:left;padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.1);vertical-align:top}
.sub-page .tw thead th{color:#00ff80;border-bottom:1px solid rgba(0,255,128,.3)}
.sub-page .tw tbody th{font-weight:700}
.sub-page .note{border-left:4px solid #00ff80;background:rgba(0,255,128,.08);padding:12px 16px;border-radius:0 8px 8px 0;margin:12px 0}
.sub-page details{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:10px;margin:8px 0}
.sub-page summary{cursor:pointer;padding:13px 16px;font-weight:700;min-height:44px;list-style:none}
.sub-page summary::-webkit-details-marker{display:none}
.sub-page summary::after{content:"+";float:right;color:#00ff80;font-size:1.3em;line-height:1}
.sub-page details[open] summary::after{content:"\2212"}
.sub-page summary:focus-visible,.sub-page .btn:focus-visible{outline:3px solid #00ccff;outline-offset:2px}
.sub-page details .a{padding:0 16px 14px;color:#e8e8e8}
.sub-page details .a p{margin:0 0 10px}
.sub-page .tab-content{display:block}
/* Стена карточек разной длины: колонки вместо строк сетки, без пустот под короткими карточками */
.ds-grid.ds-grid--wall{display:block;columns:3 18rem;column-gap:var(--ds-s-3,16px)}
.ds-grid--wall>*{break-inside:avoid;margin:0 0 var(--ds-s-3,16px);display:block}
/* IntersectionObserver ненадёжен внутри CSS-колонок: карточки стены показываем сразу */
html .ds-grid--wall>.ds-reveal{opacity:1!important;transform:none!important}
.ds-grid--2.ds-grid--wall{columns:2 20rem}
/* хлебные крошки: текущая страница и «›» по центру строки, как ссылка */
html .breadcrumbs li{display:inline-flex;align-items:center}
/* Соцсети (ds_social_cards): одинаковые карточки-ссылки, ряд без сирот — последние растягиваются */
html body ul.ds-soc{list-style:none;margin:var(--ds-s-3,16px) 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--ds-s-3,16px)}
html .ds-soc>li{flex:1 1 10.5rem;margin:0;min-width:0}
html .ds-soc__a{display:flex;align-items:center;gap:12px;height:100%;min-height:64px;padding:12px 14px;border:1px solid var(--ds-border);border-radius:var(--ds-r-md,8px);background:var(--ds-surface-2);color:var(--ds-text);text-decoration:none;transition:border-color .15s,background .15s}
html .ds-soc__i{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--ds-surface);color:var(--ds-muted);transition:color .15s,background .15s}
html .ds-soc__i svg{width:24px;height:24px}
html .ds-soc__t{display:flex;flex-direction:column;min-width:0}
html .ds-soc__t b{font-weight:700;color:var(--ds-accent)}
html .ds-soc__t small{color:var(--ds-muted);font-size:var(--ds-fs-sm,.85rem);overflow-wrap:break-word}
html .ds-soc--tg{--brand:#229ed9}html .ds-soc--ds{--brand:#5865f2}html .ds-soc--vk{--brand:#0077ff}html .ds-soc--cr{--brand:#2fbf4a}
html .ds-soc__a:hover,html .ds-soc__a:focus-visible{border-color:var(--brand)}
html .ds-soc__a:hover .ds-soc__i,html .ds-soc__a:focus-visible .ds-soc__i{background:var(--brand);color:#fff}
html .ds-soc__a:focus-visible{outline:3px solid var(--ds-accent-2);outline-offset:2px}
/* Сетки без сирот: flex-wrap вместо grid — неполный последний ряд растягивается на всю ширину, одинокой карточки сбоку нет */
html .ds-grid:not(.ds-grid--wall),html .ds-steps{display:flex;flex-wrap:wrap}
html .ds-grid:not(.ds-grid--wall)>*,html .ds-steps>*{flex:1 1 min(100%,14rem)}
html .ds-grid--2:not(.ds-grid--wall)>*{flex-basis:min(100%,20rem)}
html .ds-grid--4:not(.ds-grid--wall)>*,html .home-links>*{flex-basis:min(100%,11rem)}
/* команды в тексте переносятся только по пробелам (слово рвётся, лишь если само шире строки) */
html .ds-code,html .tab-content code,html .ds-prose code{overflow-wrap:break-word}
