/* Вики Терминалиума — самодостаточные стили справочника.
   app.css НЕ импортируется: вики должна открываться отдельной страницей и не
   зависеть от того, что происходит в приложении. Нужные токены палитры
   продублированы ниже — если меняешь палитру в app.css, поправь и здесь.
   Внешних CDN и шрифтов нет: Rubik/JetBrains Mono подхватятся, если уже стоят
   в системе, иначе честный системный стек. */

:root{
  --cream:#FBF6EC;   --cream-2:#F5EEE0;
  --paper:#FFFDF7;
  --ink:#3A3040;     --ink-soft:#6B5B72;  --ink-faint:#9A8CA0;
  --mint:#8FD0AC;    --mint-dp:#4FA97D;   --mint-bg:#EAF7F0;
  --violet:#B6A5E8;  --violet-dp:#7A66C4; --violet-bg:#F1EDFC;
  --amber:#EFA845;   --amber-dp:#C97F1E;  --amber-bg:#FDF2DF;
  --rose:#E8879B;    --rose-dp:#C8546C;   --rose-bg:#FCEEF1;
  --line:#E2D8C8;    --line-soft:#EFE7D9;
  --dark:#2E2833;

  --r-sm:10px; --r:14px; --r-lg:20px; --r-xl:28px;
  --shadow:0 2px 0 var(--line), 0 8px 20px -12px rgba(58,48,64,.18);
  --sans:"Rubik", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:"JetBrains Mono", ui-monospace, Consolas, monospace;
  --artw:720px;      /* тело статьи не шире 720px — правило читаемости */
  --navw:246px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--cream);-webkit-text-size-adjust:100%}
body.wiki{
  background:var(--cream);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:var(--violet-dp)}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--violet-dp);outline-offset:2px}

.wiki-skip{position:absolute;left:-9999px;top:0;background:var(--paper);color:var(--ink);
  padding:10px 16px;border-radius:0 0 var(--r) 0;z-index:60;font-weight:600}
.wiki-skip:focus{left:0}

/* ---------------- шапка ---------------- */
.wiki-top{position:sticky;top:0;z-index:40;background:rgba(251,246,236,.94);
  backdrop-filter:blur(8px);border-bottom:1.5px solid var(--line-soft)}
.wiki-top-in{max-width:calc(var(--artw) + var(--navw) + 96px);margin:0 auto;
  padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.wiki-brand{display:inline-flex;align-items:baseline;gap:7px;text-decoration:none;color:var(--ink)}
.wiki-brand-name{font-weight:700;font-size:18px;letter-spacing:-.01em}
.wiki-brand-sep{color:var(--ink-faint)}
.wiki-brand-tag{font-family:var(--mono);font-size:11.5px;color:var(--violet-dp);
  text-transform:uppercase;letter-spacing:.09em;font-weight:700}
.wiki-brand:hover .wiki-brand-name{color:var(--violet-dp)}
.wiki-back{font-size:13.5px;font-weight:600;text-decoration:none;color:var(--mint-dp);
  background:var(--mint-bg);border:1.5px solid var(--mint);border-radius:100px;
  padding:7px 14px;white-space:nowrap}
.wiki-back:hover{background:#DCF1E6}

/* ---------------- каркас: сайдбар + текст ---------------- */
.wiki-shell{max-width:calc(var(--artw) + var(--navw) + 96px);margin:0 auto;
  padding:0 18px;display:grid;grid-template-columns:1fr;gap:0}
.wiki-nav-toggle{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.wiki-navbtn{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:16px 0 0;padding:13px 16px;background:var(--paper);border:1.5px solid var(--line);
  border-radius:var(--r);box-shadow:0 3px 0 var(--line);cursor:pointer;
  font-weight:600;font-size:14.5px;color:var(--ink-soft);user-select:none}
.wiki-navbtn-x{width:10px;height:10px;border-right:2px solid var(--ink-faint);
  border-bottom:2px solid var(--ink-faint);transform:rotate(45deg) translate(-2px,-2px);
  transition:transform .15s ease}
.wiki-nav-toggle:checked ~ .wiki-navbtn .wiki-navbtn-x{transform:rotate(-135deg) translate(-3px,-3px)}
.wiki-nav-toggle:focus-visible ~ .wiki-navbtn{outline:3px solid var(--violet-dp);outline-offset:2px}
.wiki-nav{display:none;padding:14px 4px 4px}
.wiki-nav-toggle:checked ~ .wiki-nav{display:block}
.wiki-navsec + .wiki-navsec{margin-top:18px}
.wiki-navsec-t{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--ink-faint);
  text-transform:uppercase;letter-spacing:.09em;margin-bottom:7px;padding-left:12px}
.wiki-navlist{list-style:none;display:flex;flex-direction:column;gap:1px}
.wiki-navlink{display:block;padding:8px 12px;border-radius:var(--r-sm);text-decoration:none;
  color:var(--ink-soft);font-size:14.5px;line-height:1.35;border-left:2px solid transparent}
.wiki-navlink:hover{background:var(--cream-2);color:var(--ink)}
.wiki-navlink.is-on{background:var(--violet-bg);color:var(--violet-dp);font-weight:600;
  border-left-color:var(--violet-dp)}
.wiki-main{min-width:0;padding:8px 0 40px}

@media(min-width:900px){
  .wiki-shell{grid-template-columns:var(--navw) minmax(0,1fr);gap:38px;align-items:start}
  .wiki-navbtn{display:none}
  .wiki-nav{display:block;position:sticky;top:66px;max-height:calc(100svh - 86px);
    overflow-y:auto;padding:26px 0 26px;border-right:1.5px solid var(--line-soft)}
  .wiki-main{padding:26px 0 60px}
}

/* ---------------- статья ---------------- */
.wiki-art{max-width:var(--artw)}
.wiki-crumb{font-family:var(--mono);font-size:11px;color:var(--ink-faint);
  text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.wiki-crumb a{color:var(--ink-faint);text-decoration:none;border-bottom:1px solid var(--line)}
.wiki-crumb a:hover{color:var(--violet-dp)}
.wiki-crumb span{margin:0 4px}
.wiki-h1{font-size:30px;line-height:1.2;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
.wiki-meta{font-size:13px;color:var(--ink-faint);margin-bottom:22px;
  padding-bottom:16px;border-bottom:1.5px solid var(--line-soft)}
.wiki-lede{font-size:17px;color:var(--ink-soft);line-height:1.55;margin-bottom:18px}
.wiki-stat{font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);
  text-transform:uppercase;letter-spacing:.07em;margin-bottom:26px}

.wiki-body{font-size:16.5px;line-height:1.65}
.wiki-body h2{font-size:22px;font-weight:700;letter-spacing:-.01em;margin:34px 0 12px;
  scroll-margin-top:80px}
.wiki-body h3{font-size:18.5px;font-weight:600;margin:26px 0 10px;scroll-margin-top:80px}
.wiki-body h4{font-size:16px;font-weight:600;color:var(--ink-soft);margin:22px 0 8px;
  scroll-margin-top:80px}
.wiki-body p{margin:0 0 15px}
.wiki-body a{color:var(--violet-dp);text-decoration:none;border-bottom:1.5px solid #DCD2F5}
.wiki-body a:hover{border-bottom-color:var(--violet-dp)}
.wiki-body strong{font-weight:700}
.wiki-body code{font-family:var(--mono);font-size:.86em;background:var(--cream-2);
  border:1px solid var(--line-soft);border-radius:6px;padding:1px 5px;
  overflow-wrap:anywhere;color:var(--ink)}
.wiki-hr{border:none;border-top:1.5px dashed var(--line);margin:28px 0}

.wiki-ul,.wiki-ol{margin:0 0 16px;padding-left:22px;display:flex;flex-direction:column;gap:7px}
.wiki-ul{list-style:disc}
.wiki-ol{list-style:decimal}
.wiki-body li{line-height:1.6}
.wiki-body li::marker{color:var(--mint-dp);font-weight:600}
.wiki-ol li::marker{font-family:var(--mono);font-size:.9em}
.wiki-body li > .wiki-ul,.wiki-body li > .wiki-ol{margin:7px 0 0}
.wiki-body li p{margin:0 0 8px}

.wiki-quote{margin:0 0 16px;padding:14px 18px;background:var(--violet-bg);
  border-left:4px solid var(--violet);border-radius:0 var(--r) var(--r) 0;color:var(--ink)}
.wiki-quote p:last-child{margin-bottom:0}

/* инфографика/картинка статьи: во всю ширину колонки, подпись под ней */
.wiki-fig{margin:4px 0 20px;text-align:center}
.wiki-fig img{display:block;max-width:100%;width:100%;height:auto;border-radius:var(--r);
  border:1.5px solid var(--line-soft);background:var(--paper)}
.wiki-fig figcaption{margin-top:8px;font-size:13px;color:var(--ink-soft)}

/* блок кода: тёмная плашка + кнопка «копировать» */
.wiki-code{position:relative;margin:0 0 18px;border-radius:var(--r);overflow:hidden;
  background:var(--dark)}
.code-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 10px 0 15px;min-height:34px}
.code-lang{font-family:var(--mono);font-size:10.5px;color:#9C8FA6;text-transform:uppercase;
  letter-spacing:.09em;font-weight:700}
.code-copy{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--dark);
  background:var(--mint);border:none;border-radius:8px;padding:5px 10px;cursor:pointer;
  text-transform:uppercase;letter-spacing:.05em;margin-left:auto}
.code-copy:hover{background:#9BD9B7}
.code-copy.is-done{background:var(--amber)}
.wiki-code pre{margin:0;padding:8px 15px 15px;overflow-x:auto}
.wiki-code code{font-family:var(--mono);font-size:13.5px;line-height:1.6;color:#F0E9DC;
  background:none;border:none;padding:0;white-space:pre}

/* таблица: на телефоне скроллится внутри себя, страница не едет */
.wiki-tablewrap{margin:0 0 18px;overflow-x:auto;border:1.5px solid var(--line);
  border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--shadow)}
.wiki-table{border-collapse:collapse;width:100%;font-size:14.5px;min-width:340px}
.wiki-table th,.wiki-table td{padding:11px 15px;text-align:left;
  border-bottom:1px solid var(--line-soft);line-height:1.5;vertical-align:top}
.wiki-table th{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--violet-dp);
  text-transform:uppercase;letter-spacing:.06em;background:var(--cream-2);white-space:nowrap}
.wiki-table tbody tr:last-child td{border-bottom:none}
.wiki-table tbody tr:nth-child(even){background:var(--cream)}

.wiki-xref{color:var(--mint-dp);text-decoration:none;border-bottom:1.5px solid var(--mint);
  font-weight:500}
.wiki-xref:hover{border-bottom-color:var(--mint-dp)}
.wiki-xref.is-broken{color:var(--rose-dp);border-bottom:1.5px dashed var(--rose);cursor:help}

/* ---------------- подвалы статьи ---------------- */
.wiki-block-t{font-family:var(--mono);font-size:11px;color:var(--ink-faint);
  text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.wiki-srcs{margin-top:30px;padding-top:18px;border-top:1.5px dashed var(--line)}
.wiki-srclist{list-style:none;display:flex;flex-direction:column;gap:7px}
.wiki-srclist a{font-size:14.5px;color:var(--violet-dp);text-decoration:none;
  border-bottom:1.5px solid #DCD2F5;overflow-wrap:anywhere}
.wiki-srclist a:hover{border-bottom-color:var(--violet-dp)}
.wiki-units{margin-top:26px}
.wiki-unitrow{display:flex;flex-wrap:wrap;gap:9px}
.wiki-unit{display:inline-flex;align-items:baseline;gap:8px;text-decoration:none;
  background:var(--paper);border:1.5px solid var(--line);border-radius:100px;
  padding:7px 15px 7px 11px;box-shadow:0 2px 0 var(--line);
  transition:border-color .12s, box-shadow .12s, transform .08s}
.wiki-unit:hover{border-color:var(--mint-dp);box-shadow:0 2px 0 var(--mint-dp)}
.wiki-unit:active{transform:translateY(2px);box-shadow:none}
.wiki-unit b{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--mint-dp)}
.wiki-unit span{font-size:14px;color:var(--ink)}

/* ---------------- оглавление ---------------- */
.wiki-sec{margin-top:34px}
.wiki-h2{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700;margin-bottom:14px}
.wiki-count{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink-faint);
  background:var(--cream-2);border:1.5px solid var(--line);border-radius:100px;padding:1px 9px}
.wiki-cards{list-style:none;display:grid;gap:11px}
@media(min-width:640px){.wiki-cards{grid-template-columns:1fr 1fr}}
.wiki-card a{display:block;height:100%;background:var(--paper);border:1.5px solid var(--line);
  border-radius:var(--r-lg);padding:15px 17px;text-decoration:none;box-shadow:var(--shadow);
  transition:border-color .12s, transform .1s}
.wiki-card a:hover{border-color:var(--violet);transform:translateY(-2px)}
.wiki-card b{display:block;font-size:16px;font-weight:700;color:var(--ink);margin-bottom:5px}
.wiki-card span{display:block;font-size:14px;color:var(--ink-soft);line-height:1.5}

/* ---------------- подвал ---------------- */
.wiki-foot{border-top:1.5px solid var(--line-soft);background:var(--cream-2);margin-top:20px}
.wiki-foot-in{max-width:calc(var(--artw) + var(--navw) + 96px);margin:0 auto;
  padding:20px 18px 30px;display:flex;align-items:center;gap:14px}
.wiki-foot-mur{width:52px;height:52px;flex:0 0 auto;object-fit:contain}
.wiki-foot p{font-size:13.5px;color:var(--ink-soft);line-height:1.5}
.wiki-foot a{color:var(--mint-dp);text-decoration:none;border-bottom:1.5px solid var(--mint)}

@media(max-width:560px){
  .wiki-h1{font-size:25px}
  .wiki-body{font-size:16px}
  .wiki-body h2{font-size:20px}
  .wiki-top-in{padding:10px 14px}
  .wiki-shell,.wiki-foot-in{padding-left:14px;padding-right:14px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
}
