/* Classic Station — Wiki. Документация: читаемость важнее декора. */
:root{
  --bg:#101216; --side:#13161a; --surface:#181b20; --raised:#1f2329; --line:#272c33; --line-2:#333943;
  --ink:#dde1e6; --ink-2:#b4bbc4; --muted:#868e99;
  --accent:#6fa8dc; --accent-2:#4b86bd; --tint:rgba(111,168,220,.12);
  --ok:#6ab187; --warn:#d99a4a; --bad:#d6726a;
  --f-sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --f-mark:'Chakra Petch','IBM Plex Sans',sans-serif;
  --top:52px; --side-w:276px; --toc-w:224px;
}
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--top) + 18px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 15.5px/1.7 var(--f-sans);min-height:100vh}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
img{max-width:100%;height:auto}
::selection{background:rgba(111,168,220,.35)}

/* ---------- top bar ---------- */
.top{position:sticky;top:0;z-index:50;height:var(--top);display:flex;align-items:center;gap:18px;padding:0 18px;
  background:rgba(16,18,22,.96);border-bottom:1px solid var(--line)}
.mark{display:flex;align-items:baseline;gap:8px;color:var(--ink);font:600 17px/1 var(--f-mark);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.mark:hover{text-decoration:none}
.mark b{font-weight:600;color:#0c0e11;background:var(--accent);padding:2px 5px 1px;letter-spacing:.02em}
.mark small{font:500 11px/1 var(--f-sans);letter-spacing:.14em;color:var(--muted)}
.search{position:relative;flex:1;max-width:520px;margin-left:12px}
.search input{width:100%;height:34px;background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:5px;
  padding:0 40px 0 12px;font:400 14px var(--f-sans);outline:none}
.search input::placeholder{color:var(--muted)}
.search input:focus{border-color:var(--accent-2);background:var(--raised)}
.search kbd{position:absolute;right:8px;top:7px;font:500 11px var(--f-mono);color:var(--muted);border:1px solid var(--line-2);border-radius:3px;padding:1px 6px}
.results{display:none;position:absolute;left:0;right:0;top:40px;background:var(--raised);border:1px solid var(--line-2);border-radius:6px;max-height:420px;overflow:auto;box-shadow:0 14px 40px rgba(0,0,0,.55)}
.results.on{display:block}
.results a{display:flex;justify-content:space-between;gap:12px;padding:9px 13px;color:var(--ink);border-bottom:1px solid var(--line)}
.results a:last-child{border-bottom:0}
.results a:hover,.results a.sel{background:var(--tint);text-decoration:none}
.results span{color:var(--muted);font-size:12.5px;white-space:nowrap}
.results .none{padding:12px 13px;color:var(--muted)}
.links{margin-left:auto;display:flex;gap:6px;align-items:center}
.links a{color:var(--ink-2);font-size:14px;padding:6px 10px;border-radius:5px}
.links a:hover{background:var(--surface);color:var(--ink);text-decoration:none}
.links a.play{background:var(--accent);color:#0c0e11;font-weight:600}
.links a.play:hover{background:#86b8e6}
.burger{display:none;background:none;border:1px solid var(--line-2);color:var(--ink);border-radius:5px;height:34px;padding:0 10px;font:500 13px var(--f-sans);cursor:pointer}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr) var(--toc-w);align-items:start;max-width:1620px;margin:0 auto}
.side{position:sticky;top:var(--top);height:calc(100vh - var(--top));overflow:auto;padding:18px 10px 40px 18px;background:var(--side);border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.side details{margin:0 0 4px}
.side summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:7px 8px;border-radius:5px;
  font:600 11.5px/1.2 var(--f-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.side summary::-webkit-details-marker{display:none}
.side summary::after{content:'+';font:500 15px var(--f-mono);color:var(--line-2)}
.side details[open]>summary::after{content:'–'}
.side summary:hover{color:var(--ink-2);background:var(--surface)}
.side ul{list-style:none;margin:2px 0 10px;padding:0}
.side li a{display:block;padding:4px 8px 4px 14px;border-radius:5px;color:var(--ink-2);font-size:14px;line-height:1.45}
.side li a:hover{background:var(--surface);color:var(--ink);text-decoration:none}
.side li a.cur{background:var(--tint);color:#fff;font-weight:500}
.side .all{display:block;margin:4px 0 0;padding:6px 8px;font-size:13px;color:var(--muted)}
.doc{padding:34px 44px 90px;min-width:0;max-width:1080px}
.crumb{margin:0 0 10px;font-size:13px;color:var(--muted)}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--ink-2)}
.doc>h1{margin:0 0 6px;font:600 34px/1.2 var(--f-sans);letter-spacing:-.01em;color:#fff}
.lede{margin:0 0 26px;color:var(--ink-2);font-size:17px;line-height:1.55;max-width:72ch}
.toc{position:sticky;top:calc(var(--top) + 26px);padding:6px 18px 30px 6px;font-size:13px;max-height:calc(100vh - var(--top) - 40px);overflow:auto}
.toc b{display:block;margin-bottom:8px;font:600 11px var(--f-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.toc a{display:block;padding:3px 0 3px 12px;color:var(--muted);border-left:1px solid var(--line);line-height:1.4}
.toc a.l3{padding-left:26px}
.toc a:hover{color:var(--ink);text-decoration:none}
.toc a.on{color:#fff;border-left-color:var(--accent)}

/* ---------- prose (rendered MediaWiki) ---------- */
.prose{max-width:none;overflow-wrap:break-word}
.prose>*:first-child{margin-top:0}
.prose>p,.prose>ul,.prose>ol,.prose>dl,.prose>blockquote{max-width:74ch}
.prose p{margin:0 0 1.05em}
.prose h2{margin:2.1em 0 .6em;padding-bottom:.35em;font:600 24px/1.25 var(--f-sans);color:#fff;border-bottom:1px solid var(--line);clear:left}
.prose h3{margin:1.7em 0 .5em;font:600 19px/1.3 var(--f-sans);color:#f1f3f5}
.prose h4,.prose h5{margin:1.4em 0 .4em;font:600 16px/1.35 var(--f-sans);color:var(--ink)}
.prose h5{color:var(--ink-2)}
.prose ul,.prose ol{margin:0 0 1.1em;padding-left:1.4em}
.prose li{margin:.25em 0}
.prose li>ul,.prose li>ol{margin:.3em 0}
.prose dl{margin:0 0 1em}.prose dt{font-weight:600;margin-top:.7em}.prose dd{margin:.1em 0 .3em 1.2em;color:var(--ink-2)}
.prose hr{border:0;border-top:1px solid var(--line);margin:1.6em 0}
.prose blockquote{margin:1em 0;padding:.4em 1.2em;color:var(--ink-2);border:1px solid var(--line);border-radius:6px;background:var(--surface)}
.prose code,.prose tt,.prose kbd{font:400 .88em var(--f-mono);background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:.08em .38em;color:#cfd8e3}
.prose pre{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px 14px;overflow:auto;font:400 13.5px/1.55 var(--f-mono)}
.prose pre code{background:none;border:0;padding:0}
.prose span.dead{color:var(--ink-2);border-bottom:1px dotted var(--line-2)}
.prose sup{font-size:.75em;line-height:0}
.prose .reference a{color:var(--muted)}
.prose .references,.prose ol.references{font-size:13.5px;color:var(--ink-2)}
.prose img{image-rendering:auto;vertical-align:middle;border-radius:3px}
.prose img[src*="/ent/"],.prose img[src$=".png"][width="32"],.prose img[width="32"],.prose img[width="30"],.prose img[width="16"],.prose img[width="64"],.prose img[width="128"]{image-rendering:pixelated}
.prose figure{margin:1.2em 0}
.prose figure[typeof~="mw:File/Thumb"],.prose .thumb{float:right;clear:right;margin:.3em 0 1em 1.4em;max-width:320px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:6px}
.prose figcaption,.prose .thumbcaption{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.45}
.prose .floatright,.prose .tright{float:right;margin:0 0 1em 1.4em}
.prose .floatleft,.prose .tleft{float:left;margin:0 1.4em 1em 0}
.prose::after{content:'';display:block;clear:both}

/* ---------- starting gear slot overlays ---------- */
.img_special{position:relative;display:inline-flex;width:64px;height:64px;vertical-align:middle}
.img_special>div{position:absolute;inset:0;display:grid;place-items:center}
.img_special img{image-rendering:pixelated}

/* ---------- tables & role infoboxes ---------- */
.tw{overflow-x:auto;margin:1.2em 0;border:1px solid var(--line);border-radius:6px;background:var(--surface);clear:both}
.prose table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.5}
.tw>table{margin:0}
.prose th,.prose td{padding:8px 12px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;text-align:left}
.prose th{background:var(--raised);color:#fff;font-weight:600}
.prose tr:last-child>td,.prose tr:last-child>th{border-bottom:0}
.prose th:last-child,.prose td:last-child{border-right:0}
.prose td ul,.prose td ol{margin:.2em 0;padding-left:1.1em}
.prose td p:last-child{margin-bottom:0}

/* Role / object right-floated card (druid-infobox) */
.prose table.druid-infobox{float:right;clear:right;width:316px;margin:0 0 1.4em 1.8em;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:13.5px}
.prose table.druid-infobox .druid-title{background:var(--raised);color:#fff;font:600 15px/1.3 var(--f-mark);letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:10px 12px}
.prose table.druid-infobox .druid-main-image{text-align:center;padding:16px;background:var(--bg)}
.prose table.druid-infobox .druid-main-image img{width:96px;height:96px;object-fit:contain;image-rendering:pixelated}
.prose table.druid-infobox .druid-section{background:var(--raised);color:var(--muted);font:600 11px/1.2 var(--f-sans);letter-spacing:.1em;text-transform:uppercase;text-align:center;padding:6px 10px}
.prose table.druid-infobox .druid-label{width:38%;background:transparent;color:var(--muted);font-weight:500}

/* Callout notice box (.infobox on station14.ru is a notice banner, not a sidebar) */
.prose div.infobox,.notice{margin:0 0 1.4em;max-width:74ch;padding:12px 16px;border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:6px;background:var(--surface);color:var(--ink-2);font-size:14px}
.prose div.infobox .infobox__title,.notice b{display:block;color:#fff;font-weight:600;margin-bottom:3px}

.tooltip{position:relative;border-bottom:1px dotted var(--muted);cursor:help}
.tooltip .tooltiptext{display:none;position:absolute;z-index:20;left:0;bottom:calc(100% + 6px);width:max-content;max-width:300px;padding:8px 10px;background:var(--raised);border:1px solid var(--line-2);border-radius:6px;font-size:13px;line-height:1.45;color:var(--ink);box-shadow:0 10px 30px rgba(0,0,0,.5)}
.tooltip:hover .tooltiptext,.tooltip:focus .tooltiptext{display:block}
.stub{color:var(--muted)}

/* ---------- entity card (generated from the game's own data) ---------- */
.ent{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin:0 0 1.6em;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:8px;max-width:760px}
.ent .ico{width:96px;height:96px;display:grid;place-items:center;background:var(--bg);border:1px solid var(--line);border-radius:6px}
.ent .ico img{width:80px;height:80px;object-fit:contain;image-rendering:pixelated;border-radius:0}
.ent h2{margin:0 0 4px;padding:0;border:0;font:600 20px/1.25 var(--f-sans)}
.ent p{margin:0 0 .6em;color:var(--ink-2)}
.ent dl{display:grid;grid-template-columns:max-content 1fr;gap:3px 16px;margin:.4em 0 0;font-size:14px}
.ent dt{color:var(--muted);margin:0}.ent dd{margin:0;color:var(--ink)}
.ent .id{margin-top:6px;font:400 12.5px var(--f-mono);color:var(--muted)}
.inv{columns:2;column-gap:28px;margin:.6em 0 1.4em;padding:0;list-style:none;font-size:14px;max-width:760px}
.inv li{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px dotted var(--line);break-inside:avoid;margin:0}
.inv li b{font:500 13px var(--f-mono);color:var(--muted)}

/* ---------- chemistry / reagent reference ---------- */
.chem-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 22px}
.chem-box{padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:7px;font-size:14px;line-height:1.5}
.chem-box b{display:block;color:#fff;font-size:15px;margin-bottom:4px}
.chem-box p{margin:0;color:var(--ink-2);max-width:none}
.tools{position:sticky;top:var(--top);z-index:10;display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 -44px 18px;padding:12px 44px;background:rgba(16,18,22,.97);border-bottom:1px solid var(--line)}
.tools input{flex:1 1 260px;height:36px;background:var(--surface);border:1px solid var(--line);border-radius:5px;color:var(--ink);padding:0 12px;font:400 14px var(--f-sans);outline:none}
.tools input:focus{border-color:var(--accent-2)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips button{background:none;border:1px solid var(--line-2);color:var(--ink-2);border-radius:999px;padding:4px 12px;font:500 13px var(--f-sans);cursor:pointer}
.chips button:hover{color:#fff;border-color:var(--muted)}
.chips button.on{background:var(--accent);border-color:var(--accent);color:#0c0e11}
.rsec{margin:0 0 28px}
.rsec>h2{margin:1.2em 0 .6em}
.rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}
.rcard{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:7px}
.rcard-hd{display:flex;align-items:center;gap:10px}
.sw{width:14px;height:14px;border-radius:50%;border:1px solid rgba(255,255,255,.3);flex-shrink:0}
.rcard-hd .nm{font-weight:600;font-size:16px;color:#fff}
.rcard-hd .rid{margin-left:auto;font:400 12px var(--f-mono);color:var(--muted)}
.rcard .desc{margin:0;font-size:13.8px;line-height:1.5;color:var(--ink-2);max-width:none}
.rcard .meta{font-size:12.5px;color:var(--muted);margin:0;max-width:none}
.rec{margin:2px 0 0;padding:8px 11px;background:var(--bg);border:1px solid var(--line);border-radius:5px;font-size:13.5px;line-height:1.45}
.rec .cat{color:var(--muted);font-size:12.5px}
.pill{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;margin:0 4px 4px 0;border:1px solid var(--line-2)}
.pill.h{color:var(--ok);border-color:rgba(106,177,135,.4);background:rgba(106,177,135,.07)}
.pill.d{color:var(--bad);border-color:rgba(214,114,106,.4);background:rgba(214,114,106,.07)}
.pill.w{color:var(--warn);border-color:rgba(217,154,74,.45);background:rgba(217,154,74,.08)}
.cnt{color:var(--muted);font-size:14px;margin:0 0 12px}

/* ---------- department hub cards ---------- */
.dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin:12px 0 24px}
.dept-card{display:block;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--ink)}
.dept-card:hover{border-color:var(--accent-2);text-decoration:none;background:var(--raised)}
.dept-card b{display:block;color:#fff;font-size:16px;margin-bottom:3px}
.dept-card small{display:block;font:400 12px var(--f-mono);color:var(--accent);margin-bottom:6px}
.dept-card span{display:block;font-size:13.5px;color:var(--ink-2);line-height:1.45}

/* ---------- hub ---------- */
.hubgrid{display:grid;grid-template-columns:1.25fr 1fr;gap:56px;margin-top:8px}
.hub h2{margin:0 0 10px;font:600 13px var(--f-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:0;padding:0}
.hub ul{list-style:none;margin:0 0 30px;padding:0;max-width:none}
.hub li{border-bottom:1px solid var(--line)}
.hub li a{display:flex;justify-content:space-between;gap:14px;padding:9px 4px;color:var(--ink)}
.hub li a:hover{color:#fff;text-decoration:none;background:var(--surface)}
.hub li a span{color:var(--muted);font-size:13.5px;text-align:right}
.hub .big{display:block;margin:0 0 18px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:8px}
.hub .big:hover{border-color:var(--accent-2);text-decoration:none}
.hub .big b{display:block;color:#fff;font-size:18px;font-weight:600;margin-bottom:4px}
.hub .big span{color:var(--ink-2);font-size:14.5px}
.hub .note{font-size:14px;color:var(--muted);max-width:60ch}

/* ---------- index lists ---------- */
.idx{columns:3;column-gap:30px;list-style:none;margin:0;padding:0;max-width:none!important}
.idx li{break-inside:avoid;margin:0;padding:3px 0;font-size:14.5px}
.idx.letters{columns:1}
.letter{margin:26px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--line);font:600 15px var(--f-mono);color:var(--accent)}

/* ---------- misc ---------- */
.foot{padding:26px 44px 40px;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}
.foot a{color:var(--ink-2)}
@media (max-width:1180px){.shell{grid-template-columns:var(--side-w) minmax(0,1fr)}.toc{display:none}.chem-guide{grid-template-columns:1fr}}
@media (max-width:860px){
  .burger{display:block}
  .shell{grid-template-columns:minmax(0,1fr)}
  .side{position:fixed;z-index:60;top:var(--top);left:0;bottom:0;width:min(86vw,320px);height:auto;transform:translateX(-102%);transition:transform .2s}
  .side.on{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.55)}
  .doc{padding:24px 18px 70px}.tools{margin:0 -18px 14px;padding:10px 18px}
  .links a:not(.play){display:none}
  .mark small{display:none}
  .hubgrid{grid-template-columns:1fr;gap:10px}
  .idx{columns:1}
  .ent{grid-template-columns:1fr}.inv{columns:1}
  .prose figure[typeof~="mw:File/Thumb"],.prose .thumb,.prose table.druid-infobox{float:none;max-width:none;width:100%;margin:1em 0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
