/* ============ DZ-NET · оформление основного сайта (поверх style.css) ============ */
:root{
  --panel: rgba(0, 22, 4, .55);
  --panel-2: rgba(0, 40, 8, .55);
  --line: #0b4a15;
  --dim: #5fae6e;
  --warn: #ffd24a;
  --bad: #ff4d5e;
  --ok: #3ddc84;
  --tc: var(--main-text);
}
body.site{animation:none;background-attachment:fixed;font-size:15.5px;line-height:1.65;padding-bottom:0}
body.site::before{background-size:520px auto;opacity:.04}
body.site.stabilized{background-image:none}
.site .container{all:unset}
.site h1,.site h2,.site h3,.site h4{border-bottom:0;padding-bottom:0;margin:0 0 .6em;line-height:1.2}
.site h1{font-size:clamp(1.6rem,3.4vw,2.4rem)}
.site h2{font-size:1.35rem}
.site h3{font-size:1.1rem}
.site a{border-bottom:1px dashed var(--dark-text)}
.site a.btn,.site a.card,.site a.tile,.site a.chip,.site a.row-card,.site .brand,.site .nav a,.site a.tool,.site a.status-card,.site a.mystery,.site a.result,.site .tl-item a,.site .mini-list a.card{border-bottom:0}
.dim{color:var(--dim);opacity:.85}
.glow{text-shadow:0 0 10px var(--main-text)}
kbd,code{font-family:inherit;background:rgba(0,255,65,.08);border:1px solid var(--line);border-radius:3px;padding:0 .35em;font-size:.85em}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;z-index:10000;background:var(--main-bg);padding:.5rem}
:focus-visible{outline:2px solid var(--main-text);outline-offset:2px}
::selection{background:var(--main-text);color:var(--main-bg);text-shadow:none}
.site .redacted{background:#000;color:#000;border-radius:2px;padding:0 1px;user-select:none;box-shadow:0 0 0 1px #0b2a0f;text-shadow:none;cursor:help}
.site .declass{border-bottom:1px dotted var(--ok);background:rgba(61,220,132,.07)}
a.xref{border-bottom:1px dotted var(--dark-text);color:#9dffb6}

/* --- верхняя панель --- */
.topbar{position:sticky;top:0;z-index:500;background:rgba(3,8,3,.94);backdrop-filter:blur(4px);border-bottom:1px solid var(--line)}
.topbar-in{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:1rem;padding:.55rem 1rem}
.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;letter-spacing:.08em;white-space:nowrap}
.brand img{border-radius:4px}
.nav{display:flex;gap:.15rem;flex:1;flex-wrap:wrap}
.nav a{padding:.3rem .6rem;border-radius:4px;font-size:.88rem;color:var(--dim)}
.nav a:hover{background:var(--panel-2);color:var(--main-text)}
.nav a[aria-current=page]{color:var(--main-bg);background:var(--main-text);text-shadow:none}
.nav .nav-mystery{color:var(--warn)}
.nav .nav-mystery[aria-current=page]{background:var(--warn);color:#000}
.count{background:var(--main-text);color:#000;border-radius:9px;padding:0 .4em;font-size:.72rem;text-shadow:none}
.topbar-tools{display:flex;gap:.4rem;align-items:center}
.tool{background:var(--panel);border:1px solid var(--line);color:var(--main-text);font:inherit;font-size:.85rem;padding:.3rem .6rem;border-radius:4px;cursor:pointer;display:flex;gap:.4rem;align-items:center;white-space:nowrap}
.tool:hover{border-color:var(--main-text)}
.tool kbd{font-size:.7rem;opacity:.7}
.lvl-dots{display:inline-flex;gap:3px}.lvl-dots i{width:7px;height:7px;border:1px solid var(--dark-text);border-radius:50%}.lvl-dots i.on{background:var(--main-text);box-shadow:0 0 6px var(--main-text)}
.burger{display:none;background:none;border:1px solid var(--line);padding:.4rem;border-radius:4px;cursor:pointer;margin-left:auto}
.burger span{display:block;width:20px;height:2px;background:var(--main-text);margin:4px 0}
@media (max-width:980px){
  .burger{display:block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:rgba(3,8,3,.98);flex-direction:column;padding:.5rem 1rem 1rem;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a{padding:.6rem}
  .tool-text,.tool kbd{display:none}
  .topbar-tools{margin-left:0}
}

/* --- каркас --- */
.shell{max-width:1240px;margin:0 auto;padding:1.2rem 1rem 3rem;min-height:70vh}
.crumbs{font-size:.82rem;color:var(--dim);margin-bottom:1rem}
.crumbs a{color:var(--dim);border-bottom:0}.crumbs a:hover{color:var(--main-bg)}
.page-head{margin:.5rem 0 1.6rem}.page-head.compact{margin-bottom:1rem}
.eyebrow{font-size:.78rem;letter-spacing:.14em;color:var(--dim);margin:0 0 .4rem}
.lead{max-width:70ch;color:#b8f5c6;font-size:1.02rem}
.sec{margin:2rem 0 1rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)!important}
.foot{border-top:1px solid var(--line);padding:1rem 1rem 4rem;max-width:1240px;margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:.82rem;color:var(--dim)}
.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem}
@media (max-width:860px){.two-col{grid-template-columns:1fr}}

/* --- кнопки, чипы, фильтры --- */
.btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--panel);border:1px solid var(--line);color:var(--main-text);font:inherit;font-size:.88rem;padding:.4rem .8rem;border-radius:4px;cursor:pointer;text-shadow:none;transition:.15s}
.btn:hover{border-color:var(--main-text);background:var(--panel-2);color:var(--main-text)}
.btn.primary{background:var(--dark-text);color:#021002;border-color:var(--main-text)}.btn.primary:hover{background:var(--main-text);color:#000}
.btn.danger{color:var(--bad);border-color:#5a1520}.btn.danger:hover{border-color:var(--bad);background:rgba(255,77,94,.08);color:var(--bad)}
.btn.on,.btn[aria-pressed=true]{background:var(--main-text);color:#000}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.chip{background:transparent;border:1px solid var(--line);color:var(--main-text);font:inherit;font-size:.82rem;padding:.2rem .65rem;border-radius:99px;cursor:pointer;text-shadow:none}
.chip:hover{border-color:var(--tc)}
.chip.on,.chip[aria-pressed=true]{background:var(--tc);color:#000;border-color:var(--tc)}
.chip.lnk{border-bottom:1px solid var(--line)}
.filters{display:flex;flex-direction:column;gap:.7rem;margin-bottom:1.2rem;padding:.8rem;border:1px solid var(--line);background:var(--panel);border-radius:6px}
.f-search,#map-q,#b-add{width:100%;background:rgba(0,0,0,.4);border:1px solid var(--line);color:var(--main-text);font:inherit;padding:.55rem .8rem;border-radius:4px}
.f-search:focus,#map-q:focus,#b-add:focus{border-color:var(--main-text);outline:0}
.f-meta{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;font-size:.82rem;color:var(--dim)}
.linklike{background:none;border:0;color:var(--main-text);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.switch{display:inline-flex;gap:.4rem;align-items:center;cursor:pointer}
[data-filter-item][hidden]{display:none!important}

/* --- карточки --- */
.grid.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}
.grid.cards.wide{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.card-list{display:grid;gap:.6rem}
.card{display:flex;gap:.8rem;align-items:flex-start;padding:.8rem .9rem;border:1px solid var(--line);background:var(--panel);border-radius:6px;transition:.15s;position:relative;color:var(--main-text)}
.card:hover{border-color:var(--tc);background:var(--panel-2);box-shadow:0 0 14px rgba(0,255,65,.12);transform:translateY(-1px);color:var(--main-text)}
.card-icon{font-size:1.25rem;width:1.6rem;text-align:center;color:var(--dim);flex:none}
.card-body{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.card-body strong{font-size:.98rem;overflow-wrap:anywhere}
.card-body small{color:var(--dim);font-size:.8rem}
.card-type{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.card-text{font-size:.85rem;color:#b8f5c6;margin-top:.3rem}
.card.seen{opacity:.78}.card.seen .card-icon{color:var(--ok)}
.card.sealed{border-style:dashed;background:rgba(0,0,0,.35)}
.card.sealed:hover{border-color:var(--warn)}
.card.gap{border-style:dotted;opacity:.55;cursor:default}.card.gap:hover{transform:none;box-shadow:none;border-color:var(--line);background:var(--panel)}
.card.obj{border-left:3px solid var(--tc)}
.obj-id{font-weight:700;color:var(--tc);white-space:nowrap;font-size:.9rem;padding-top:.1rem}
.obj-id.big{font-size:inherit;display:inline-block;padding:0 .4rem;border:1px solid var(--tc);border-radius:4px;margin-right:.3rem}
.badge{display:inline-block;font-size:.72rem;padding:.05rem .5rem;border-radius:99px;border:1px solid var(--line);vertical-align:middle}
.badge.threat{border-color:var(--tc);color:var(--tc)}
.cls-badge{flex:none;min-width:2.6rem;height:2.6rem;display:grid;place-items:center;border:1px solid var(--main-text);border-radius:4px;font-weight:700;font-size:1.05rem}
.callsign{font-style:normal;color:#9dffb6}
.st-ACTIVE{color:var(--ok)}.st-DECEASED,.st-DESTROYED{color:var(--bad)}.st-RETIRED,.st-DECOMMISSIONED{color:var(--warn)}.st-MIA{color:#c58aff}
.dot{display:inline-block;width:.6em;height:.6em;border-radius:50%;margin-right:.4em;background:currentColor}
.dot.sig{background:var(--warn)}

/* --- панель статуса и плитки --- */
.status-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;margin-bottom:1.4rem}
.status-card{display:flex;flex-direction:column;gap:.3rem;padding:.9rem 1rem;border:1px solid var(--line);background:var(--panel);border-radius:6px;color:var(--main-text)}
a.status-card:hover{border-color:var(--main-text);color:var(--main-text)}
.status-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.status-card strong{font-size:1.2rem}.status-card small{color:var(--dim);font-size:.78rem}
.meter{height:6px;background:#031a07;border:1px solid var(--line);border-radius:3px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--main-text);box-shadow:0 0 8px var(--main-text)}
.meter.warn i{background:var(--warn);box-shadow:0 0 8px var(--warn)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}
.tile{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:1px solid var(--line);background:var(--panel);border-radius:6px;color:var(--main-text);transition:.15s}
.tile:hover{background:var(--dark-text);color:#021002;border-color:var(--main-text);text-shadow:none;transform:translateY(-2px)}
.tile:hover small,.tile:hover .tile-ic{color:#021002}
.tile-ic{font-size:1.5rem;color:var(--main-text)}.tile small{color:var(--dim);font-size:.8rem}
.tile-accent{border-color:#5a4a10}.tile-accent .tile-ic{color:var(--warn)}
.steps{padding-left:1.2rem}.steps li{margin-bottom:.5rem}

/* --- детальные страницы --- */
.detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:2rem;align-items:start}
@media (max-width:980px){.detail{grid-template-columns:1fr}}
.doc{min-width:0}
.doc section{margin-bottom:1.8rem}
.doc section>h2{font-size:1.15rem;border-bottom:1px solid var(--line)!important;padding-bottom:.35rem;margin-top:1.4rem}
.doc p,.doc li{max-width:74ch}
.doc-head{margin-bottom:1.4rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.facts{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin:.8rem 0 0}
.facts div{display:flex;flex-direction:column}.facts dt{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.facts dd{margin:0}
.figure{float:right;width:min(340px,42%);margin:0 0 1rem 1.5rem;padding:8px;border:1px solid var(--line);background:var(--panel)}
.figure img{width:100%;display:block}.figure figcaption{font-size:.8rem;text-align:center;color:#b8f5c6;margin-top:.4rem;font-style:italic}
.rail{position:sticky;top:4.2rem;display:flex;flex-direction:column;gap:1rem}
@media (max-width:980px){.rail{position:static}}
.rail-block{border:1px solid var(--line);background:var(--panel);padding:.8rem;border-radius:6px}
.rail-block h4{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:.6rem}
.rail-block.actions{display:flex;flex-wrap:wrap;gap:.4rem}
.hint-block{font-size:.82rem;color:var(--dim)}.hint-block p{margin:0}
.mini-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.mini-list small{display:block;color:var(--dim);font-size:.76rem}
.pin-btn.pinned{background:var(--main-text);color:#000}
.prevnext{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line)}
.prevnext a{border-bottom:0;padding:.4rem .7rem;border:1px solid var(--line);border-radius:4px;max-width:48%}
.doc-list{list-style:none;padding:0;display:grid;gap:.5rem}.doc-list .kind{color:var(--dim);font-size:.8rem;margin-right:.4rem}
.quote{border-left:3px solid var(--main-text);margin:1rem 0 1.5rem;padding:.4rem 1rem;font-style:italic;color:#b8f5c6}
.marks{padding-left:1.2rem}
.person-head{display:flex;gap:1.4rem;align-items:flex-start}
.portrait{width:130px;height:130px;object-fit:cover;border:1px solid var(--main-text);border-radius:4px;flex:none}
.portrait.ph{display:grid;place-items:center;font-size:2.4rem;font-weight:700;background:var(--panel)}
@media (max-width:560px){.person-head{flex-direction:column}}
.minimap-img{position:relative;aspect-ratio:950/620;background:#003a0a center/cover;border:1px solid var(--line);border-radius:4px}
.pin-dot{position:absolute;width:10px;height:10px;margin:-5px;border-radius:50%;background:var(--main-text);box-shadow:0 0 0 4px rgba(0,255,65,.3),0 0 12px var(--main-text);animation:ping 1.6s infinite}
@keyframes ping{50%{box-shadow:0 0 0 9px rgba(0,255,65,0),0 0 12px var(--main-text)}}
.bars{list-style:none;padding:0;display:grid;gap:.5rem}.bars li{display:grid;grid-template-columns:minmax(120px,40%) 1fr 60px;gap:.6rem;align-items:center;font-size:.88rem}
.bar{height:8px;background:#031a07;border:1px solid var(--line);border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--main-text)}.bars b{text-align:right}

/* --- документы --- */
.paper{position:relative;background:linear-gradient(180deg,rgba(0,35,8,.5),rgba(0,18,4,.5));border:1px solid var(--line);padding:1.6rem 1.8rem;border-radius:6px}
.stamp{position:absolute;top:1.2rem;right:1.4rem;transform:rotate(8deg);border:3px double var(--bad);color:var(--bad);padding:.1rem .7rem;font-weight:700;letter-spacing:.2em;opacity:.7;text-shadow:none;pointer-events:none}
.events{padding-left:0;list-style:none;counter-reset:ev;border-left:2px solid var(--line);margin-left:.5rem}
.events li{counter-increment:ev;position:relative;padding:.2rem 0 .8rem 1.4rem}
.events li::before{content:"";position:absolute;left:-6px;top:.6rem;width:10px;height:10px;border-radius:50%;background:var(--main-bg);border:2px solid var(--main-text)}
.chat{display:flex;flex-direction:column;gap:.6rem}
.turn{max-width:78%;padding:.5rem .8rem;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.turn p{margin:0}.turn .who{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:.15rem}
.turn.left{align-self:flex-start}.turn.right{align-self:flex-end;background:var(--panel-2);border-color:var(--dark-text)}
.turn.note{align-self:center;font-style:italic;color:var(--dim);border-style:dashed}
.raw{border-left:3px solid var(--dark-text);margin:0;padding-left:1rem}
.row-card{display:flex;gap:1rem;align-items:center;padding:.7rem .9rem;border:1px solid var(--line);background:var(--panel);border-radius:6px;margin-bottom:.5rem;color:var(--main-text)}
.row-card:hover{border-color:var(--main-text);background:var(--panel-2);color:var(--main-text)}
.row-card.sealed{border-style:dashed}.row-card.seen{opacity:.75}
.row-date{color:var(--dim);font-size:.85rem;min-width:5.6rem}.row-main{flex:1;display:flex;flex-direction:column}.row-main small{color:var(--dim)}.row-go{color:var(--dim)}

/* --- организации и классы --- */
.stance-OWN{--tc:#00ff41}.stance-ALLY{--tc:#7fd6ff}.stance-NEUTRAL{--tc:#aaa}.stance-RIVAL{--tc:#ffd24a}.stance-ENEMY{--tc:#ff4d5e}
.card.org{border-left:3px solid var(--tc)}
.detail.stance-OWN .doc-head,.detail[class*=stance-] .doc-head{border-bottom-color:var(--tc)}
.badge.stance{border-color:var(--tc);color:var(--tc)}
.legend{display:flex;gap:.6rem;margin-bottom:1rem;font-size:.78rem}.lg{padding:.05rem .6rem;border-left:3px solid;background:var(--panel)}
.lg.own{border-color:#00ff41}.lg.ally{border-color:#7fd6ff}.lg.neutral{border-color:#aaa}.lg.rival{border-color:#ffd24a}.lg.enemy{border-color:#ff4d5e}
.ladder-threat{display:grid;gap:.5rem}
.threat{border:1px solid var(--line);border-left:4px solid var(--tc);background:var(--panel);border-radius:6px;padding:.1rem .9rem}
.threat summary{display:flex;gap:.9rem;align-items:center;cursor:pointer;padding:.7rem 0;list-style:none}
.threat summary::-webkit-details-marker{display:none}
.t-step{width:1.7rem;height:1.7rem;display:grid;place-items:center;border:1px solid var(--tc);color:var(--tc);border-radius:50%;font-size:.85rem}
.threat strong{color:var(--tc);font-size:1.05rem}.t-word{color:var(--dim);flex:1}.t-count{font-size:.78rem;color:var(--dim)}
.threat[open]{background:var(--panel-2)}.threat p{margin:.2rem 0 .8rem}.threat .chips{padding-bottom:.8rem}
.pyramid{display:grid;gap:1rem}
.p-group{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:.8rem}
.p-group h3{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.p-group.g-top{border-color:#5a4a10}
.p-classes{display:flex;flex-wrap:wrap;gap:.5rem}
.p-cls{display:flex;align-items:center;gap:.5rem;background:rgba(0,0,0,.35);border:1px solid var(--line);color:var(--main-text);font:inherit;font-size:.82rem;padding:.35rem .65rem;border-radius:4px;cursor:pointer;position:relative;text-shadow:none}
.p-cls b{font-size:1rem;min-width:1.6rem;text-align:center}
.p-cls:hover,.p-cls[aria-expanded=true]{border-color:var(--main-text);background:var(--panel-2)}
.p-cls .known{font-style:normal;background:var(--main-text);color:#000;border-radius:99px;font-size:.68rem;padding:0 .4em}
.p-detail{margin-top:1rem;padding:1rem;border:1px solid var(--main-text);background:var(--panel-2);border-radius:6px}

/* --- хронология --- */
.tl-year{display:grid;grid-template-columns:90px 1fr;gap:1rem;margin-bottom:1.5rem}
.tl-y{font-size:1.5rem;color:var(--main-text);position:sticky;top:4.4rem;align-self:start}
.tl-y small{display:block;font-size:.7rem;color:var(--dim)}
.tl-year ol{list-style:none;margin:0;padding:0 0 0 1.4rem;border-left:2px solid var(--line)}
.tl-item{position:relative;margin-bottom:.6rem}
.tl-item::before{content:"";position:absolute;left:calc(-1.4rem - 6px);top:1rem;width:10px;height:10px;border-radius:50%;background:var(--main-bg);border:2px solid var(--main-text)}
.tl-item.kind-archive::before{border-color:var(--dim);border-radius:2px}
.tl-item.sealed::before{border-style:dashed;border-color:var(--warn)}
.tl-item a{display:flex;gap:1rem;padding:.6rem .8rem;border:1px solid var(--line);background:var(--panel);border-radius:6px;color:var(--main-text)}
.tl-item a:hover{border-color:var(--main-text);color:var(--main-text)}
.tl-item time{color:var(--dim);font-size:.82rem;min-width:6.5rem}
.tl-main{display:flex;flex-direction:column;gap:.15rem}.tl-main small{color:var(--dim)}
.tl-unknown .tl-y{color:var(--warn)}
.cat-INCIDENT{border-color:var(--bad);color:var(--bad)}.cat-CONTAINMENT{border-color:var(--warn);color:var(--warn)}.cat-ORG{border-color:#7fd6ff;color:#7fd6ff}.cat-ARCHIVE{color:var(--dim)}
@media (max-width:640px){.tl-year{grid-template-columns:1fr}.tl-y{position:static}.tl-item a{flex-direction:column;gap:.2rem}}

/* --- загадки --- */
.mystery-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.mystery{position:relative;padding:1.2rem 1rem 1rem;border:1px dashed #6b5714;background:linear-gradient(180deg,rgba(40,32,0,.35),rgba(0,0,0,.3));border-radius:6px;color:var(--main-text);display:block}
.mystery:hover{border-color:var(--warn);color:var(--main-text);box-shadow:0 0 16px rgba(255,210,74,.15)}
.mystery strong{display:block;font-size:1.05rem;margin:.4rem 0}
.mystery p{margin:.2rem 0;color:#e8f9d0;font-size:.9rem}
.m-stamp{position:absolute;top:.6rem;right:.6rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--warn);border:1px solid #6b5714;padding:0 .5rem;border-radius:3px}
.mystery.st-SOLVED{border-color:var(--ok);background:rgba(0,40,14,.35)}.mystery.st-SOLVED .m-stamp{color:var(--ok);border-color:var(--ok)}
.badge.mstat.st-OPEN,.badge.mstat.st-HYPOTHESIS,.badge.mstat.st-PARTIAL{border-color:var(--warn);color:var(--warn)}
.badge.mstat.st-SOLVED{border-color:var(--ok);color:var(--ok)}
.solved-line{color:var(--warn)}
.hyp textarea{width:100%;background:rgba(0,0,0,.4);border:1px solid var(--line);color:var(--main-text);font:inherit;padding:.7rem;border-radius:4px;resize:vertical}
.hyp textarea:focus{border-color:var(--main-text);outline:0}

/* --- поиск --- */
.search-form{margin-bottom:1rem}
.type-chips{margin-bottom:1rem}.type-chips a.chip{border-bottom:1px solid var(--line)}.type-chips a.chip.on{background:var(--main-text);color:#000}
.results{display:grid;gap:.6rem}
.result{display:flex;gap:.8rem;padding:.8rem;border:1px solid var(--line);background:var(--panel);border-radius:6px;color:var(--main-text)}
.result:hover{border-color:var(--main-text);color:var(--main-text)}
.snip{font-size:.85rem;color:#b8f5c6;margin-top:.3rem}
mark{background:var(--warn);color:#000;border-radius:2px;padding:0 1px;text-shadow:none}
.empty{padding:2rem;text-align:center;border:1px dashed var(--line);border-radius:6px}

/* --- экран доступа, коды --- */
.lockscreen{max-width:560px;margin:4vh auto;text-align:center;padding:2rem 1.5rem;border:1px solid var(--bad);background:rgba(30,0,4,.35);border-radius:8px;box-shadow:0 0 30px rgba(255,77,94,.12)}
.lockscreen h1{color:var(--bad);text-shadow:0 0 8px var(--bad)}
.lock-code{font-size:4rem;font-weight:700;color:var(--bad);opacity:.8;line-height:1}
.lockscreen .actions{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.code-form{text-align:left;margin:1.2rem 0}.code-form label{display:block;font-size:.8rem;color:var(--dim);margin-bottom:.3rem}
.code-row{display:flex;gap:.5rem}.code-row input{flex:1;background:rgba(0,0,0,.5);border:1px solid var(--main-text);color:var(--main-text);font:inherit;padding:.6rem .8rem;border-radius:4px;letter-spacing:.08em}
.code-result{min-height:1.5em;margin:.6rem 0 0}.code-result.ok{color:var(--ok)}.code-result.bad{color:var(--bad)}
.code-form.big{max-width:520px}
.ladder{list-style:none;padding:0;display:grid;gap:.4rem}
.ladder li{padding:.5rem .8rem;border:1px solid var(--line);border-radius:4px;color:var(--dim)}
.ladder li.done{color:var(--main-text)}.ladder li.current{border-color:var(--main-text);background:var(--panel-2);color:var(--main-text)}
.guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.guide-card{border:1px solid var(--line);background:var(--panel);padding:1rem;border-radius:6px}.guide-card .tile-ic{display:block;margin-bottom:.4rem}
.levels{padding-left:1.2rem;color:var(--dim);font-size:.85rem}

/* --- палитра поиска --- */
.palette{position:fixed;inset:0;z-index:3000;display:grid;place-items:start center;padding-top:12vh}
.palette[hidden]{display:none}
.palette-back{position:absolute;inset:0;background:rgba(0,0,0,.75)}
.palette-box{position:relative;width:min(640px,94vw);background:#030c04;border:1px solid var(--main-text);border-radius:8px;box-shadow:0 0 40px rgba(0,255,65,.25);overflow:hidden}
.palette-input{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;border-bottom:1px solid var(--line)}
.palette-input input{flex:1;background:transparent;border:0;color:var(--main-text);font:inherit;font-size:1.05rem;outline:0}
.palette-x{background:none;border:1px solid var(--line);color:var(--dim);border-radius:4px;font:inherit;font-size:.7rem;cursor:pointer}
.palette-list{list-style:none;margin:0;padding:.3rem;max-height:50vh;overflow:auto}
.palette-list li a{display:flex;gap:.7rem;padding:.55rem .7rem;border-radius:4px;border-bottom:0;color:var(--main-text)}
.palette-list li[aria-selected=true] a,.palette-list li a:hover{background:var(--dark-text);color:#021002;text-shadow:none}
.palette-list li a small{display:block;opacity:.7}
.palette-list .msg{padding:.8rem;color:var(--dim)}
.palette-hint{padding:.5rem 1rem;border-top:1px solid var(--line);font-size:.72rem;color:var(--dim)}
.toast{position:fixed;left:50%;bottom:4.5rem;transform:translateX(-50%);z-index:4000;background:#031a07;border:1px solid var(--main-text);padding:.6rem 1rem;border-radius:6px;box-shadow:0 0 20px rgba(0,255,65,.3);max-width:90vw}
.toast[hidden]{display:none}.toast.bad{border-color:var(--bad);color:var(--bad)}

/* --- карта --- */
.map-layout{display:grid;grid-template-columns:260px 1fr;gap:1rem}
@media (max-width:860px){.map-layout{grid-template-columns:1fr}}
.map-side{display:flex;flex-direction:column;gap:.7rem}
.map-list{list-style:none;padding:0;margin:0;max-height:56vh;overflow:auto;display:grid;gap:.3rem}
.map-list button{width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);color:var(--main-text);font:inherit;font-size:.85rem;padding:.4rem .6rem;border-radius:4px;cursor:pointer}
.map-list button:hover,.map-list button.on{border-color:var(--main-text);background:var(--panel-2)}
.map-list small{display:block;color:var(--dim)}
.map-wrapper{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--map-background);height:min(68vh,620px);cursor:grab;touch-action:none}
#map-container{width:100%;height:100%;transform-origin:0 0}
#map-container svg{width:100%;height:100%;display:block;background:var(--map-background)}
.zoom-controls{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:4px;z-index:5}
.zoom-btn{width:34px;height:34px;background:rgba(3,10,3,.9);border:1px solid var(--main-text);color:var(--main-text);font:inherit;font-size:1.1rem;cursor:pointer;border-radius:4px}
.zoom-btn:hover{background:var(--main-text);color:#000}
.zoom-level{font-size:.7rem;text-align:center;color:var(--main-text);background:rgba(3,10,3,.8)}
#map-container .map-marker{cursor:pointer;stroke:#000;stroke-width:1.5px;fill:#00ff41;opacity:1;animation:none;r:6;transition:r .15s;filter:drop-shadow(0 0 3px rgba(0,255,65,.9))}
#map-container .map-marker.DECOMMISSIONED{fill:var(--warn);filter:drop-shadow(0 0 3px rgba(255,210,74,.9))}
#map-container .map-marker.DESTROYED{fill:var(--bad);filter:drop-shadow(0 0 3px rgba(255,77,94,.9))}
#map-container .map-marker.sealed{fill:#111;stroke:var(--warn);stroke-dasharray:2 2;filter:none}
#map-container .map-marker.signal{fill:var(--warn);r:7;animation:sig 1.4s infinite;filter:drop-shadow(0 0 4px var(--warn))}
@keyframes sig{50%{opacity:.25}}
#map-container .map-marker:hover,#map-container .map-marker.focus{r:10;stroke:#fff;animation:none;opacity:1}
.map-tip{position:absolute;pointer-events:none;z-index:6;background:rgba(3,10,3,.96);border:1px solid var(--main-text);padding:.4rem .7rem;border-radius:4px;font-size:.82rem;white-space:nowrap}
.map-card{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);z-index:900;width:min(420px,94vw);background:#030c04;border:1px solid var(--main-text);border-radius:8px;padding:1rem;box-shadow:0 0 30px rgba(0,255,65,.25)}
.map-card[hidden]{display:none}

/* --- печать --- */
@media print{
  body.site{background:#fff;color:#000;text-shadow:none}
  body.site::before,.beta-watermark,.topbar,.rail,.foot,.stabilize-button,.palette,.crumbs,.prevnext,.filters{display:none!important}
  .detail{display:block}.doc,.paper{background:#fff;border:0;color:#000}
  .site a{color:#000;border:0}.site .redacted{background:#000;color:#000}
  .doc-head,.doc section>h2{border-color:#000!important}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.tl-main .badge{align-self:flex-start}
.card-body .badge{align-self:flex-start}
