/* ============================================================
   Раздел «Вики» лендинга (site/wiki/*.html).
   Поверх общего page.css: та же палитра, шапка и подвал, но своя,
   «энциклопедическая» подача: три колонки, левое дерево документации,
   оглавление справа, мягкие карточки и свечение акцентов.
   ============================================================ */

/* ---------- три колонки: дерево — текст — оглавление ---------- */
.wk-layout{
  display:grid;
  grid-template-columns:250px minmax(0,1fr) 220px;
  gap:36px;
  max-width:1360px;
  padding-top:96px;
  padding-bottom:40px;
  align-items:start;
}
/* Наши навигации НЕ должны получать шапочные стили page.css (там они прибиты
   к #mainNav, но страховка не мешает): nowrap обрезал длинные названия
   дерева, а мобильный медиазапрос превращал nav в position:fixed-панель,
   которая вырывалась из колонок и ложилась поверх текста. */
.wk-nav,.wk-toc-nav,.wk-pager{position:static}
.wk-nav a,.wk-toc-nav a,.wk-pager a{white-space:normal}
/* АДАПТИВ ЖИВЁТ В КОНЦЕ ФАЙЛА (после всех базовых правил): у селекторов
   одинаковая специфичность, и перебивает их только порядок следования.
   Раньше media-блок стоял до базовых .wk-nav/.wk-side — и на телефоне
   дерево оставалось display:flex и position:sticky: сворачивалось в липкий
   список во весь рост экрана и ложилось поверх текста статьи. */

/* ---------- левое дерево документации ---------- */
.wk-side{position:sticky; top:76px; max-height:calc(100vh - 96px); overflow:auto;
  background:linear-gradient(180deg,rgba(62,123,255,.05),transparent 120px),var(--panel);
  border:1px solid var(--line); border-radius:18px; padding:14px}
.wk-side-head{font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--faint); padding:4px 10px 10px; border-bottom:1px solid var(--line); margin-bottom:8px}
.wk-nav{display:flex; flex-direction:column; gap:2px}
.wk-nav a{display:block; padding:8px 10px; border-radius:10px; font-size:13.5px; line-height:1.35;
  color:var(--dim); border-left:2px solid transparent; transition:background .2s, color .2s, border-color .2s}
.wk-nav a:hover{background:rgba(62,123,255,.08); color:var(--ink)}
.wk-nav a.active{background:rgba(62,123,255,.14); border-left-color:var(--blue); color:var(--ink); font-weight:600}

/* ---------- текст страницы ---------- */
.wk-crumbs{font-family:var(--mono); font-size:12px; color:var(--faint); margin-bottom:18px}
.wk-crumbs a{color:var(--dim)} .wk-crumbs a:hover{color:var(--ink)}
.wk-body{min-width:0}
/* Заголовок страницы из markdown — h1 — берём в «шапку» с акцентной чертой. */
.wk-content h1{font-size:clamp(28px,3.4vw,40px); margin:0 0 8px; padding-bottom:16px;
  border-bottom:1px solid var(--line); position:relative}
.wk-content h1:after{content:""; position:absolute; left:0; bottom:-1px; width:72px; height:2px;
  background:linear-gradient(90deg,var(--blue),transparent)}
.wk-content h2{scroll-margin-top:80px}
.wk-content h3{scroll-margin-top:80px}

/* Таблицы: как на лендинге, но с тенью и скруглением — «витрина» вместо сетки. */
.wk-content table{background:var(--panel); border:1px solid var(--line); border-radius:14px;
  border-collapse:separate; border-spacing:0; overflow:hidden; font-size:14.5px}
.wk-content th{font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--faint); text-align:left; padding:12px 14px; border-bottom:1px solid var(--line2); white-space:nowrap}
.wk-content td:first-child{white-space:normal}
.wk-content tr:hover td{background:rgba(62,123,255,.04)}

/* Код: плашки и блоки в фирменной моно-подаче. */
.wk-content pre{border-radius:12px; position:relative}
.wk-content code{font-size:13px}

/* Сворачиваемые блоки <details> — тот же приём, что в вики мессенджера. */
.wk-content details{background:var(--panel); border:1px solid var(--line); border-radius:14px;
  padding:0; margin:14px 0; overflow:hidden}
.wk-content summary{cursor:pointer; list-style:none; padding:13px 16px; font-weight:600; color:var(--ink);
  display:flex; align-items:center; gap:10px; transition:background .2s}
.wk-content summary::-webkit-details-marker{display:none}
.wk-content summary:before{content:"▸"; color:var(--blue); transition:transform .25s var(--ease); display:inline-block}
.wk-content details[open] summary:before{transform:rotate(90deg)}
.wk-content summary:hover{background:rgba(62,123,255,.06)}
.wk-content details > *:not(summary){margin-left:16px; margin-right:16px}
.wk-content details > *:last-child{margin-bottom:14px}

/* Цитаты и разделители — мягче, чем на общей странице. */
.wk-content blockquote{border-left:3px solid var(--blue); background:rgba(62,123,255,.06);
  border-radius:0 12px 12px 0; padding:10px 16px; color:var(--dim); margin:14px 0}
.wk-content hr{border:0; height:1px; background:var(--line); margin:30px 0}

/* Ссылки внутри текста — те же, что в page.css, но якоря оглавления не подчёркиваем. */
.wk-toc-nav a{text-decoration:none !important}

/* ---------- оглавление справа ---------- */
.wk-toc{position:sticky; top:76px; max-height:calc(100vh - 96px); overflow:auto;
  font-size:13px; padding-left:14px; border-left:1px solid var(--line)}
.wk-toc-head{font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--faint); margin-bottom:10px}
.wk-toc-nav{display:flex; flex-direction:column; gap:1px}
.wk-toc-nav a{display:block; padding:5px 8px; border-radius:8px; color:var(--dim); line-height:1.35;
  transition:color .2s, background .2s}
.wk-toc-nav a.lvl3{padding-left:20px; font-size:12.5px}
.wk-toc-nav a:hover{color:var(--ink); background:rgba(62,123,255,.07)}
.wk-toc-nav a.cur{color:var(--blue2); background:rgba(62,123,255,.1)}

/* ---------- навигация «предыдущая / следующая» ---------- */
.wk-pager{display:flex; justify-content:space-between; gap:14px; margin:44px 0 8px;
  border-top:1px solid var(--line); padding-top:20px}
.wk-pager-item{display:flex; flex-direction:column; gap:3px; max-width:46%;
  border:1px solid var(--line); border-radius:14px; padding:12px 16px; transition:border-color .25s, transform .25s var(--ease)}
.wk-pager-item:hover{border-color:var(--blue); transform:translateY(-2px)}
.wk-pager-item.next{text-align:right; margin-left:auto}
.wk-pager-item .d{font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--faint)}
.wk-pager-item .t{color:var(--ink); font-weight:600; font-size:14.5px}

/* ---------- главная раздела: герой и поиск ---------- */
.wk-index{max-width:1160px; padding-top:60px}
.wk-hero{position:relative; padding:56px 0 30px; text-align:left}
.wk-hero-glow{position:absolute; inset:-40px -10% auto; height:280px; pointer-events:none;
  background:
    radial-gradient(60% 90% at 20% 0%, rgba(62,123,255,.22), transparent 65%),
    radial-gradient(50% 80% at 80% 10%, rgba(255,90,78,.12), transparent 60%);
  filter:blur(6px);
  animation:wkFloat 14s ease-in-out infinite alternate}
@keyframes wkFloat{from{transform:translate3d(0,0,0)} to{transform:translate3d(0,18px,0)}}
.wk-hero-in{position:relative}
.wk-hero h1{font-size:clamp(34px,5vw,60px)}
.wk-hero .lead{max-width:64ch}

.wk-search-wrap{position:relative; margin:26px 0 8px; max-width:620px}
#wkSearch{padding:15px 110px 15px 18px; font-size:16px; border-radius:14px;
  background:var(--panel); border:1px solid var(--line2); color:var(--ink); width:100%;
  transition:border-color .25s, box-shadow .25s}
#wkSearch:focus{outline:none; border-color:var(--blue); box-shadow:0 0 0 4px rgba(62,123,255,.16)}
.wk-search-count{position:absolute; right:16px; top:50%; transform:translateY(-50%);
  font-family:var(--mono); font-size:12px; color:var(--faint); pointer-events:none}

/* ---------- карточки документации ---------- */
.wk-cards{display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:16px;
  padding:22px 0 70px}
.wk-card{display:flex; flex-direction:column; gap:7px; position:relative;
  background:var(--panel); border:1px solid var(--line); border-radius:18px; padding:20px 22px;
  transition:transform .3s var(--ease), border-color .3s, box-shadow .3s; overflow:hidden}
.wk-card:before{content:""; position:absolute; inset:0 0 auto; height:2px;
  background:linear-gradient(90deg,var(--blue),transparent 70%); opacity:0; transition:opacity .3s}
.wk-card:hover{transform:translateY(-4px); border-color:rgba(62,123,255,.4);
  box-shadow:0 18px 44px rgba(0,0,0,.35)}
.wk-card:hover:before{opacity:1}
.wk-card-n{font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--blue)}
.wk-card-t{font-weight:700; font-size:17px; color:var(--ink); line-height:1.3}
.wk-card-d{font-size:13.5px; color:var(--dim); line-height:1.5}
.wk-card.hide{display:none}

/* ---------- появление карточек (как rv на главной) ----------
   Скрыты только при работающем JS: без него карточки видны сразу. */
.js .wk-card.rv{opacity:0; transform:translateY(16px)}
.js .wk-card.rv.shown{opacity:1; transform:none;
  transition:opacity .55s var(--ease) var(--rvd,0ms), transform .55s var(--ease) var(--rvd,0ms),
    border-color .3s, box-shadow .3s}

@media(prefers-reduced-motion:reduce){
  .js .wk-card.rv{opacity:1 !important; transform:none !important}
  .wk-hero-glow{animation:none}
}

/* ---------- адаптив (В КОНЦЕ ФАЙЛА — см. пометку вверху) ---------- */
@media(max-width:1180px){
  /* Оглавление справа первым уходит: под ним остаётся слишком узкий текст. */
  .wk-layout{grid-template-columns:235px minmax(0,1fr)}
  .wk-toc{display:none}
}
@media(max-width:860px){
  .wk-layout{grid-template-columns:minmax(0,1fr); padding-top:84px; gap:20px}
  /* Плашка дерева — липкой полосой ПОД шапкой: кнопка меню документации
     всегда на экране, даже посреди длинной статьи (шапка лендинга занимает
     60px, z-index ниже её 50 — панель уезжает под шапку, а не поверх). */
  .wk-side{order:1; position:sticky; top:60px; z-index:40;
    max-height:none; overflow:visible; padding:0;
    border:0; border-bottom:1px solid var(--line); border-radius:0}
  .wk-side-head{display:flex; align-items:center; justify-content:space-between;
    margin:0; padding:13px 16px; border-bottom:0; cursor:pointer; user-select:none;
    -webkit-user-select:none;
    background:rgba(12,17,26,.97);
    -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px)}
  .wk-side-head:after{content:"▾"; font-size:13px; color:var(--dim);
    transition:transform .25s var(--ease)}
  .wk-side.open .wk-side-head:after{transform:rotate(180deg)}
  /* Раскрытое дерево — панелью ПОВЕРХ статьи, а не перед ней: 31 пункт
     не должны вытеснять текст на три экрана вниз. */
  .wk-nav{display:none}
  .wk-side.open .wk-nav{display:flex;
    position:absolute; left:0; right:0; top:100%;
    max-height:calc(100vh - 110px); overflow-y:auto;
    padding:8px 10px 12px;
    background:rgba(7,10,15,.98);
    -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line2);
    box-shadow:0 24px 48px rgba(0,0,0,.5)}
  .wk-body{order:2}
}
