/* CyberSec · админ-панель сервера загрузок. Фирменный стиль портала/лаунчера: чёрный, один красный акцент, моно-метки. */

@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/ibm-plex-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/ibm-plex-sans-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url(fonts/jetbrains-mono-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url(fonts/jetbrains-mono-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

:root{
  --a1:#d8263a;--a2:#ef3348;--abg:#150c0d;--abd:#3b1116;--abd2:#58151c;--adp:#290e11;--ash:#7b1924;--argb:216,38,58;
  --bg0:#070707;--bg1:#0a0a0a;--bg2:#0b0b0b;--bg3:#0d0d0d;--bg4:#0e0e0e;--bg5:#101010;--bg6:#121212;--bg7:#151515;
  --l1:#161616;--l2:#1a1a1a;--l3:#1c1c1c;--l4:#222;--l5:#262626;--l6:#2a2a2a;--l7:#2e2e2e;--l8:#3a3836;--l9:#4a4846;
  --t0:#fff;--t1:#e6e4e1;--t2:#d6d3cf;--t3:#bdbab5;--t4:#a3a09c;--t5:#8b8986;--t6:#6b6966;--t7:#55534f;
  --ok:#5fbf7a;--okb:#2f5f3f;--okbg:#0c1510;--warn:#d4961c;--warnb:#5a4310;--warnbg:#15110a;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
  --sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --r1:3px;--r2:5px;--r3:6px;--r4:8px;--r5:10px;
  --side:240px;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg0);color:var(--t1);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;min-width:1024px}
::selection{background:var(--a1);color:#fff}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
input,textarea,select{font:inherit}
code{font-family:var(--mono);font-size:.92em;color:var(--a2);background:var(--abg);border:1px solid var(--abd);border-radius:3px;padding:1px 5px;white-space:nowrap;font-variant-ligatures:none}
.mono,.inp.mono,.chips-inp.mono,.chip-x.mono{font-variant-ligatures:none}
b{font-weight:600;color:var(--t1)}
[hidden]{display:none!important}
:focus-visible{outline:2px solid rgba(var(--argb),.65);outline-offset:2px}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:#262626;border-radius:6px;border:3px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:#3a3836;border:3px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-track{background:transparent}
*{scrollbar-color:#262626 transparent;scrollbar-width:thin}

@keyframes lnFade{from{opacity:0}to{opacity:1}}
@keyframes lnRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes lnRiseS{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes lnBlink{50%{opacity:0}}
@keyframes lnSpin{to{transform:rotate(360deg)}}
@keyframes lnGlitch{0%,90%,100%{transform:none;opacity:1;filter:none}91%{transform:translateX(-4px) skewX(-6deg);opacity:.85;filter:drop-shadow(3px 0 0 rgba(239,51,72,.6))}93%{transform:translateX(5px);filter:drop-shadow(-3px 0 0 rgba(95,191,122,.25))}95%{transform:none}}
@keyframes lnPop{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@keyframes lnSlide{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes lnShim{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes lnShake{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(3px)}30%,50%,70%{transform:translateX(-5px)}40%,60%{transform:translateX(5px)}}
@keyframes lnDrip{0%,100%{opacity:0;transform:translateY(-2px)}30%{opacity:1}70%{opacity:.8;transform:translateY(2px)}}
@keyframes lnPulse{0%{box-shadow:0 0 0 0 rgba(95,191,122,.45)}70%{box-shadow:0 0 0 6px rgba(95,191,122,0)}100%{box-shadow:0 0 0 0 rgba(95,191,122,0)}}
@keyframes lnGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes lnFlash{0%{box-shadow:0 0 0 0 rgba(var(--argb),.0)}30%{box-shadow:0 0 0 3px rgba(var(--argb),.45)}100%{box-shadow:0 0 0 0 rgba(var(--argb),0)}}

/* ---------- общие ---------- */
.mono{font-family:var(--mono)}
.dim{color:var(--t6)}
.sp{flex:1 1 auto}
.ok-t{color:var(--ok)}
.danger-t{color:var(--a2)!important}
.ell{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ic{flex-shrink:0;display:block}
.mlabel{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--t5);white-space:nowrap}
.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--a2);display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:'';width:18px;height:1px;background:var(--a1)}
.tlink{font-size:11px;color:var(--t5);transition:color .15s}
.tlink:hover{color:var(--a2)}

.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--t7);flex-shrink:0;vertical-align:middle}
.dot-ok{background:var(--ok);animation:lnPulse 2.4s infinite}
.dot-warn{background:var(--warn)}
.dot-err{background:var(--a1)}
.dot-off{background:var(--l9)}

/* кнопки */
.btn{height:36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 15px;border:1px solid var(--l7);border-radius:var(--r2);background:transparent;color:var(--t1);font-size:13.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,filter .15s,transform .05s;position:relative;user-select:none}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-pri{background:var(--a1);border-color:var(--a1);color:#fff;font-weight:600;box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 6px 18px -8px rgba(var(--argb),.7)}
.btn-pri:hover:not(:disabled){background:var(--a2);border-color:var(--a2)}
.btn-sec:hover:not(:disabled){border-color:var(--t6);background:rgba(255,255,255,.03)}
.btn-ghost{border-color:transparent;color:var(--t3)}
.btn-ghost:hover:not(:disabled){background:rgba(255,255,255,.05);color:var(--t1)}
.btn-danger{border-color:var(--abd2);color:var(--a2)}
.btn-danger:hover:not(:disabled){background:var(--abg);border-color:var(--a1)}
.btn-danger-solid{background:var(--a1);border-color:var(--a1);color:#fff;font-weight:600}
.btn-danger-solid:hover{background:var(--a2)}
.btn-sm{height:30px;padding:0 11px;font-size:12.5px;gap:6px}
.btn-lg{height:44px;font-size:14.5px;padding:0 20px}
.btn-block{width:100%}
.btn.mono{font-family:var(--mono);font-size:11.5px}
.btn.loading{color:transparent!important;pointer-events:none}
.btn.loading>*{opacity:0}
.btn.loading::after{content:'';position:absolute;width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:lnSpin .7s linear infinite}
.btn-sec.loading::after,.btn-ghost.loading::after{border-color:rgba(255,255,255,.18);border-top-color:var(--t1)}
.ibtn{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid transparent;border-radius:var(--r2);background:transparent;color:var(--t5);cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.ibtn:hover:not(:disabled){background:rgba(255,255,255,.06);color:var(--t1)}
.ibtn:disabled{opacity:.3;cursor:not-allowed}
.ibtn-sm{width:26px;height:26px}
.ibtn-danger:hover:not(:disabled){color:var(--a2);background:var(--abg)}
.ibtn-glass{background:rgba(8,8,8,.72);border-color:rgba(255,255,255,.08);color:var(--t2);backdrop-filter:blur(6px)}
.ibtn-glass:hover:not(:disabled){background:rgba(8,8,8,.9);color:#fff}

/* чипы */
.chip{display:inline-flex;align-items:center;gap:4px;height:19px;padding:0 7px;border:1px solid var(--l8);border-radius:var(--r1);font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);white-space:nowrap;line-height:1;vertical-align:middle;flex-shrink:0}
.chip .ic{width:11px;height:11px}
.chip-mute{border-color:var(--l6);color:var(--t5);background:rgba(255,255,255,.015)}
.chip-dash{border-style:dashed;border-color:var(--l9);color:var(--t4)}
.chip-acc{border-color:var(--abd2);color:var(--a2);background:var(--abg)}
.chip-acc-solid{border-color:var(--a1);background:var(--a1);color:#fff}
.chip-ok{border-color:var(--okb);color:var(--ok);background:var(--okbg)}
.chip-line{border-color:var(--l6);color:var(--t3);text-transform:none;letter-spacing:.02em}
.chip-tag-release{border-color:var(--abd2);color:var(--a2);background:var(--abg)}
.chip-tag-update{border-color:var(--okb);color:var(--ok);background:var(--okbg)}
.chip-tag-event{border-color:var(--warnb);color:var(--warn);background:var(--warnbg)}
.chip-tag-blog{border-color:var(--l8);color:var(--t3)}
.chip.lvl{font-weight:700;letter-spacing:.04em;font-size:10.5px;color:var(--t3);border-color:var(--l8);text-transform:none}
.chip.lvl-hi{color:var(--a2);border-color:var(--abd2)}
.beta{margin-left:6px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--a2);border:1px solid var(--abd2);border-radius:2px;padding:0 4px}

/* ---------- ASCII и логотип ---------- */
.ascii{font-family:var(--mono);line-height:1.05;white-space:pre;user-select:none}
.ascii-row{height:1.05em}
.glitch{animation:lnGlitch 5s infinite}
.hk{display:block}
.hk-drip .drip{animation:lnDrip 2.6s ease-in-out infinite}
.hk-drip .d1{opacity:.7}.hk-drip .d2{opacity:.45;animation-delay:.4s}.hk-drip .d3{opacity:.25;animation-delay:.8s}

/* ---------- экран входа ---------- */
.auth{height:100vh;display:grid;grid-template-columns:minmax(460px,560px) 1fr;background:var(--bg0)}
.auth-l{display:flex;flex-direction:column;background:#0b0b0b;border-right:1px solid var(--l2);position:relative;z-index:1}
.auth-brand{display:flex;align-items:center;gap:12px;padding:26px 34px}
.brand-words{display:flex;flex-direction:column;gap:5px}
.brand-sub{font-family:var(--mono);font-size:9.5px;letter-spacing:.28em;color:var(--t5)}
.auth-ver{font-size:10.5px;color:var(--t6);border:1px solid var(--l5);border-radius:3px;padding:2px 7px}
.auth-main{flex:1;display:flex;align-items:center;padding:0 34px}
.auth-box{width:100%;max-width:400px;margin:0 auto;display:flex;flex-direction:column;gap:14px;animation:lnRise .4s ease}
.auth-h{margin:0;font-size:30px;line-height:1.15;font-weight:700;color:#fff;letter-spacing:-.01em}
.auth-p{margin:0 0 6px;color:var(--t5);font-size:13.5px;line-height:1.6}
.auth-form{display:flex;flex-direction:column;gap:14px}
.auth-form.shake{animation:lnShake .42s}
.auth-err{font-family:var(--mono);font-size:12px;color:var(--a2);background:var(--abg);border:1px solid var(--abd);border-radius:var(--r2);padding:9px 12px;animation:lnFade .15s}
.auth-help{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:16px;border-top:1px solid var(--l3);font-size:12.5px;color:var(--t5)}
.auth-foot{display:flex;gap:18px;justify-content:space-between;padding:18px 34px;border-top:1px solid var(--l3);font-size:10.5px;color:var(--t6)}
.auth-foot>span{display:flex;align-items:center;gap:6px}
.auth-fp{color:var(--t4);letter-spacing:.04em}
.auth-r{position:relative;overflow:hidden;display:flex;flex-direction:column;background-color:#090909;background-image:radial-gradient(ellipse at 50% 42%,rgba(var(--argb),.17),transparent 60%),repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px)}
.auth-r::after{content:'';position:absolute;inset:0;background-image:radial-gradient(#1a1a1a 1px,transparent 1px);background-size:22px 22px;opacity:.35;pointer-events:none;mask-image:radial-gradient(ellipse at 50% 50%,#000 20%,transparent 75%)}
.auth-r-in{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 7vw;gap:22px}
.auth-r-in.center{align-items:center;text-align:center}
.auth-ascii-wrap{overflow:hidden}
.auth-ascii{font-size:clamp(5.6px,.56vw,9.6px);filter:drop-shadow(0 0 22px rgba(var(--argb),.25))}
.auth-tag{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.3em;color:var(--t5)}
.auth-tag-line{width:34px;height:1px;background:var(--a1)}
.auth-lead{font-size:22px;line-height:1.45;color:var(--t1);max-width:560px;font-weight:500}
.auth-lead.small{font-size:15px;color:var(--t3);max-width:420px;font-weight:400}
.auth-feats{display:flex;flex-direction:column;gap:14px;max-width:560px;margin-top:6px}
.auth-feat{display:flex;gap:14px;align-items:flex-start;animation:lnRise .45s ease both}
.auth-feat-ic{width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--abd2);border-radius:var(--r2);background:var(--abg);color:var(--a2)}
.auth-feat>span:last-child{display:flex;flex-direction:column;gap:2px}
.auth-feat-t{font-size:13.5px;font-weight:600;color:var(--t1)}
.auth-feat-d{font-size:12.5px;color:var(--t5);line-height:1.5}
.auth-r-foot{position:relative;z-index:1;padding:18px 7vw;font-size:10px;letter-spacing:.24em;color:var(--t7)}
.inp-lg{height:44px;font-size:14.5px}
.inp-wrap{position:relative;display:flex}
.inp-wrap .inp{padding-right:42px}
.inp-eye{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--t6);cursor:pointer;border-radius:4px}
.inp-eye:hover{color:var(--t1);background:rgba(255,255,255,.05)}
.caps{color:var(--warn)!important}
.rules{list-style:none;margin:0;padding:10px 12px;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;border:1px solid var(--l3);border-radius:var(--r2);background:var(--bg4)}
.rules li{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--t6);transition:color .2s}
.rule-m{width:12px;height:12px;border:1px solid var(--l9);border-radius:50%;flex-shrink:0;transition:all .2s}
.rules li.ok{color:var(--t3)}
.rules li.ok .rule-m{background:var(--ok);border-color:var(--ok);box-shadow:0 0 0 3px rgba(95,191,122,.12)}
.pw-meter{display:flex;align-items:center;gap:10px;margin-top:4px}
.pw-meter-bars{display:flex;gap:4px;flex:1}
.pw-meter-bars>span{flex:1;height:3px;border-radius:2px;background:var(--l5);transition:background .2s}
.pw-meter-bars>span.on.s1{background:var(--a1)}
.pw-meter-bars>span.on.s2{background:var(--warn)}
.pw-meter-bars>span.on.s3{background:#9fbf5f}
.pw-meter-bars>span.on.s4{background:var(--ok)}
.pw-meter-t{font-size:10.5px;color:var(--t5);min-width:64px;text-align:right}

.boot{height:100vh;display:flex;align-items:center;justify-content:center}
.boot::after{content:'';width:18px;height:18px;border:2px solid #222;border-top-color:var(--a1);border-radius:50%;animation:lnSpin .7s linear infinite}
.fatal{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.fatal-t{font-size:20px;font-weight:600}
.fatal-s{color:var(--t5);font-size:12px}

/* ---------- каркас ---------- */
.app{height:100vh;display:grid;grid-template-columns:var(--side) minmax(0,1fr)}
.side{display:flex;flex-direction:column;background:var(--bg3);border-right:1px solid var(--l3);overflow-y:auto;overflow-x:hidden;min-height:0}
.brand{display:flex;align-items:center;gap:12px;padding:18px 18px 16px;transition:opacity .15s}
.brand:hover .brand-hk{animation:lnGlitch 1.2s 1}
.nav{display:flex;flex-direction:column;padding:2px 10px 0}
.nav-g{display:flex;flex-direction:column;gap:1px;padding-bottom:8px}
.nav-gl{padding:8px 14px 5px;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--t7)}
.nav-i{min-height:36px;display:flex;align-items:center;gap:12px;padding:7px 12px 7px 14px;border-left:2px solid transparent;border-radius:0 6px 6px 0;color:var(--t4);font-size:13.5px;transition:background .15s,color .15s}
.nav-i:hover{background:rgba(255,255,255,.04);color:#fff}
.nav-i.on{border-left-color:var(--a1);background:linear-gradient(90deg,rgba(var(--argb),.09),rgba(255,255,255,.03) 70%);color:#fff}
.nav-i.on .ic{color:var(--a2)}
.nav-l{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-n{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--a1);color:#fff;font-family:var(--mono);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
.side-srv{margin:10px 10px 0;padding:10px 12px;border-top:1px solid var(--l3);display:flex;flex-direction:column;gap:5px;font-size:9.5px;letter-spacing:.1em;color:var(--t7)}
.side-srv-r{display:flex;justify-content:space-between;gap:8px}
.side-srv-v{color:var(--t5);letter-spacing:.02em}
.me{display:flex;align-items:center;gap:6px;margin:8px 10px 10px;padding:9px 8px 9px 12px;border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg4)}
.me-main{flex:1;min-width:0;display:flex;align-items:center;gap:11px}
.ava{width:32px;height:32px;flex-shrink:0;border-radius:5px;background:var(--abg);border:1px solid var(--abd2);display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--a2);position:relative}
.ava.on::after{content:'';position:absolute;right:-3px;bottom:-3px;width:9px;height:9px;border-radius:50%;background:var(--ok);border:2px solid var(--bg4)}
.ava-sm{width:26px;height:26px;font-size:10.5px;border-radius:4px}
.me-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.me-n{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-r{font-size:10px;color:var(--t5);display:flex;align-items:center;gap:2px}
.me-r .dot{width:6px;height:6px;animation:none}

.main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100vh;background:var(--bg2)}
.top{height:60px;flex-shrink:0;display:flex;align-items:center;gap:14px;padding:0 28px;border-bottom:1px solid var(--l1);background:var(--bg2)}
.top-search{position:relative;width:380px;max-width:42vw;display:flex;align-items:center;height:38px;padding:0 10px 0 13px;gap:10px;border:1px solid var(--l5);border-radius:var(--r3);background:#111;color:var(--t5);transition:border-color .15s,opacity .15s;cursor:text}
.top-search:focus-within{border-color:var(--a1)}
.top-search.off{opacity:.45;cursor:default}
.top-q{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--t1);font-family:var(--mono);font-size:12px;outline:none}
.top-q::placeholder{color:var(--t6)}
.top-q::-webkit-search-cancel-button{filter:grayscale(1) brightness(.6)}
kbd{font-family:var(--mono);font-size:10px;color:var(--t6);border:1px solid var(--l6);border-bottom-width:2px;border-radius:4px;padding:0 6px;line-height:16px}
.wp-pill{height:32px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--l5);border-radius:16px;font-family:var(--mono);font-size:11px;color:var(--t4);transition:border-color .15s}
.wp-pill:hover{border-color:var(--l9);color:var(--t1)}
.wp-ok{border-color:var(--okb)}
.wp-warn{border-color:var(--warnb);color:var(--warn)}
.wp-err{border-color:var(--abd2);color:var(--a2)}
.top-me-wrap{position:relative}
.top-me{height:38px;display:flex;align-items:center;gap:9px;padding:0 10px 0 6px;border:1px solid var(--l5);border-radius:var(--r3);background:transparent;color:var(--t3);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}
.top-me:hover,.top-me[aria-expanded=true]{border-color:var(--l9);color:#fff}
.menu{position:absolute;right:0;top:46px;z-index:40;width:290px;padding:6px;border:1px solid var(--l7);border-radius:var(--r4);background:var(--bg6);box-shadow:0 20px 50px rgba(0,0,0,.65);animation:lnPop .14s ease}
.menu-h{display:flex;flex-direction:column;gap:3px;padding:10px 12px 12px;border-bottom:1px solid var(--l3);margin-bottom:5px}
.menu-n{font-weight:600}
.menu-r{font-size:10px;color:var(--t6);letter-spacing:.06em}
.menu-i{width:100%;display:flex;align-items:center;gap:10px;padding:9px 12px;border:0;border-radius:var(--r2);background:transparent;color:var(--t2);font-size:13px;text-align:left;cursor:pointer}
.menu-i:hover{background:#1c1c1c;color:#fff}
.menu-i.danger:hover{color:var(--a2);background:var(--abg)}

.sect{min-height:56px;flex-shrink:0;display:flex;align-items:stretch;gap:24px;padding:0 28px;border-bottom:1px solid var(--l2);background:#0c0c0c}
.sect-t{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:8px 24px 8px 0;border-right:1px solid #1e1e1e;min-width:0;max-width:440px}
.crumbs{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.06em;color:var(--t7);white-space:nowrap;overflow:hidden}
.crumb{color:var(--t6);text-transform:uppercase}
a.crumb:hover{color:var(--a2)}
.crumb-sep{color:#333}
.sect-title{font-size:16px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:baseline;gap:10px}
.sect-sub{font-size:10.5px;font-weight:400;color:var(--t6)}
.tabs{display:flex;align-items:stretch;gap:22px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{display:flex;align-items:center;gap:7px;padding:0 2px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--t5);font-size:13.5px;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}
.tab:hover:not(:disabled){color:#fff}
.tab.on{color:#fff;border-bottom-color:var(--a1)}
.tab:disabled{opacity:.35;cursor:not-allowed}
.tab-n{min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:#1e1e1e;color:var(--t4);font-family:var(--mono);font-size:9.5px;display:flex;align-items:center;justify-content:center}
.tab.on .tab-n{background:var(--a1);color:#fff}
.sect-act{display:flex;align-items:center;gap:8px;padding:10px 0}
.view-host{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}
.view{padding:22px 28px 64px;animation:lnRiseS .28s ease;max-width:1680px}
.ro-note{display:flex;align-items:center;gap:6px;font-size:11px}

/* ---------- состояния ---------- */
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:54px 24px;border:1px dashed var(--l6);border-radius:var(--r4);text-align:center;background:repeating-linear-gradient(135deg,rgba(255,255,255,.008) 0 12px,transparent 12px 24px);animation:lnFade .2s}
.empty-ic{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border:1px solid var(--l6);border-radius:var(--r4);background:var(--bg4);color:var(--t6);margin-bottom:4px}
.empty-t{font-family:var(--mono);font-size:13px;color:var(--t3)}
.empty-s{font-size:12.5px;color:var(--t6);max-width:460px;line-height:1.55}
.empty .btn{margin-top:10px}
.empty-err .empty-ic{color:var(--a2);border-color:var(--abd2);background:var(--abg)}
.sk{border-radius:var(--r3);background:linear-gradient(90deg,#0f0f0f 0,#171717 40%,#0f0f0f 80%) #0f0f0f;background-size:800px 100%;animation:lnShim 1.4s infinite linear;border:1px solid var(--l2)}
.sk-rows{display:flex;flex-direction:column;gap:8px}
.sk-row{height:52px}
.sk-card{height:300px}
.sk-tile{height:118px}
.sk-chart{height:300px;margin-top:16px}

/* карточки, сетки */
.card{border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);min-width:0;animation:lnRiseS .3s ease both}
.card-head{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--l2)}
.card-title{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--t4)}
.card-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.card-body{padding:16px 18px}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:16px}
.form-grid{display:flex;flex-direction:column;gap:16px;max-width:1080px}
.form-grid.two{display:grid;grid-template-columns:1fr 1fr}
.fg{display:flex;flex-direction:column;gap:16px}
.fg>div:empty{display:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;align-items:start}
.media-grid{display:grid;grid-template-columns:200px minmax(0,1.6fr) minmax(0,.75fr);gap:18px;align-items:start}

/* поля */
.fld{display:flex;flex-direction:column;gap:7px;min-width:0}
.fld-top{display:flex;align-items:baseline;gap:10px}
.fld-l{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--t5)}
.req{color:var(--a2);margin-left:3px}
.fld-cnt{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--t7)}
.fld-cnt.over{color:var(--a2)}
.fld-hint{font-size:11.5px;color:var(--t6);line-height:1.45}
.fld-err{font-family:var(--mono);font-size:11.5px;color:var(--a2);animation:lnFade .15s}
.fld.has-err .inp,.fld.has-err .chips-in,.fld.has-err .seg{border-color:var(--a1)}
.inp{width:100%;height:38px;padding:0 12px;border:1px solid var(--l6);border-radius:var(--r2);background:var(--bg2);color:var(--t1);font-size:13.5px;outline:none;transition:border-color .15s,background .15s}
.inp:hover:not(:focus):not(:disabled){border-color:#3a3a3a}
.inp:focus{border-color:var(--a1);background:#0c0c0c}
.inp::placeholder{color:#55534f}
.inp:disabled,.inp[readonly]{opacity:.7}
.inp.mono{font-family:var(--mono);font-size:12.5px}
.inp-sm{height:32px;font-size:12.5px}
.inp-ro{display:flex;align-items:center;gap:6px;background:#0d0d0d;border-style:dashed;color:var(--t3)}
.area{height:auto;padding:10px 12px;line-height:1.6;resize:vertical;min-height:64px}
.sel{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8986' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.sel option{background:#121212;color:var(--t1)}
.sel-sm{height:32px;width:auto;min-width:150px;font-size:12.5px}
input[type=datetime-local].inp{color-scheme:dark}
input[type=number].inp::-webkit-inner-spin-button{opacity:.4}

.seg{display:inline-flex;align-self:flex-start;gap:2px;padding:3px;border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg2);max-width:100%;flex-wrap:wrap}
.seg-b{height:28px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:0;border-radius:4px;background:transparent;color:var(--t5);font-size:12.5px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.seg-b:hover{color:var(--t1)}
.seg-b.on{background:#262626;color:var(--t1);box-shadow:0 1px 0 rgba(255,255,255,.05) inset}
.seg-n{font-family:var(--mono);font-size:10px;color:var(--t6)}
.seg-b.on .seg-n{color:var(--a2)}
.seg-sm .seg-b{height:24px;padding:0 9px;font-family:var(--mono);font-size:11px}
.seg-ic .seg-b{padding:0 9px}

.sw{width:38px;height:22px;flex-shrink:0;position:relative;border:0;border-radius:11px;padding:0;background:var(--l7);cursor:pointer;transition:background .15s}
.sw-k{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:8px;background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.5)}
.sw.on{background:var(--a1)}
.sw.on .sw-k{left:19px}
.swrow{display:flex;align-items:center;gap:16px;padding:13px 16px;border:1px solid var(--l4);border-radius:var(--r3);background:var(--bg2)}
.swrow-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.swrow-l{font-size:14px;font-weight:500}
.swrow-d{font-size:12px;color:var(--t6);line-height:1.45}

.chips-in{min-height:38px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--l6);border-radius:var(--r2);background:var(--bg2);cursor:text;transition:border-color .15s}
.chips-in:focus-within{border-color:var(--a1)}
.chips-inp{flex:1;min-width:110px;height:26px;border:0;background:transparent;color:var(--t1);font-size:13px;outline:none}
.chips-inp.mono{font-family:var(--mono);font-size:12px}
.chips-inp::placeholder{color:#55534f}
.chip-x{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 4px 0 9px;border:1px solid var(--l7);border-radius:var(--r1);background:#141414;font-size:12px;color:var(--t2);animation:lnFade .12s}
.chip-x.mono{font-family:var(--mono);font-size:11.5px}
.chip-x button{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:0;border-radius:3px;background:transparent;color:var(--t6);cursor:pointer;font-size:14px;line-height:1}
.chip-x button:hover{background:var(--abg);color:var(--a2)}

.lvls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.lvl-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 6px;border:1px solid var(--l6);border-radius:var(--r3);background:var(--bg2);cursor:pointer;transition:all .15s}
.lvl-card:hover{border-color:var(--l9)}
.lvl-card.on{border-color:var(--a1);background:var(--abg);box-shadow:0 0 0 3px rgba(var(--argb),.08)}
.lvl-tag{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--t3)}
.lvl-card.on .lvl-tag{color:var(--a2)}
.lvl-name{font-size:11.5px;color:var(--t5)}

/* загрузки */
.up{display:flex;flex-direction:column;gap:7px;padding:12px 14px;border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg5);animation:lnFade .15s}
.up-top{display:flex;align-items:center;gap:10px;min-width:0}
.up-name{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--t2)}
.up-name .ic{color:var(--a2)}
.up-pct{font-family:var(--mono);font-size:12px;color:var(--a2);font-weight:600}
.up-bar{height:4px;border-radius:2px;background:#1e1e1e;overflow:hidden}
.up-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--a1),var(--a2));transition:width .25s;box-shadow:0 0 10px rgba(var(--argb),.6)}
.up-meta{font-family:var(--mono);font-size:10.5px;color:var(--t6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.up-err{border-color:var(--abd2)}
.up-err .up-meta,.up-err .up-pct{color:var(--a2)}
.up-cancel{opacity:.55}
.up-cancel .up-fill{background:var(--t6);box-shadow:none}
.up-cancel .up-pct{color:var(--t5)}
.up-compact{padding:9px 11px;background:rgba(10,10,10,.88);backdrop-filter:blur(6px)}

.imgslot{position:relative;width:100%;border-radius:var(--r3);overflow:hidden;border:1px solid var(--l5);background:var(--bg2);transition:border-color .15s,box-shadow .15s}
.imgslot.drag,.gal.drag,.pkg.drag{border-color:var(--a1);box-shadow:0 0 0 3px rgba(var(--argb),.15)}
.imgslot-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:lnFade .2s}
.imgslot-img.dim,.gal-t img.dim{opacity:.35;filter:grayscale(.4)}
.imgslot-up{position:absolute;left:8px;right:8px;bottom:8px}
.imgslot-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:6px;padding:28px 8px 8px;background:linear-gradient(transparent,rgba(0,0,0,.78));opacity:0;transition:opacity .15s}
.imgslot:hover .imgslot-bar,.imgslot:focus-within .imgslot-bar{opacity:1}
.imgslot-sha{font-size:10px;color:var(--t4)}
.imgslot-empty{position:absolute;inset:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:10px;border:0;background:repeating-linear-gradient(135deg,#101010 0 12px,#0d0d0d 12px 24px);color:var(--t6);cursor:pointer;text-align:center;transition:color .15s}
.imgslot-empty:hover{color:var(--t2)}
.imgslot-empty:hover .ic{color:var(--a2)}
.imgslot-t{font-size:12.5px}
.imgslot-s{font-size:9.5px;color:var(--t7);letter-spacing:.04em}

.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;padding:10px;border:1px dashed var(--l6);border-radius:var(--r3);transition:border-color .15s,box-shadow .15s}
.gal-t{position:relative;aspect-ratio:16/9;border-radius:var(--r2);overflow:hidden;border:1px solid var(--l5);background:var(--bg2);cursor:grab;animation:lnFade .2s}
.gal-t img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.gal-t.dragging{opacity:.35}
.gal-t.over{outline:2px solid var(--a1);outline-offset:2px}
.gal-n{position:absolute;left:6px;top:6px;font-size:9.5px;padding:1px 5px;border-radius:2px;background:rgba(0,0,0,.72);color:var(--t2)}
.gal-grip{position:absolute;left:50%;top:6px;transform:translateX(-50%);color:rgba(255,255,255,.65);opacity:0;transition:opacity .15s}
.gal-x{position:absolute;right:5px;top:5px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:0;border-radius:4px;background:rgba(0,0,0,.72);color:var(--t2);cursor:pointer;opacity:0;transition:opacity .15s,background .15s}
.gal-x:hover{background:var(--a1);color:#fff}
.gal-t:hover .gal-x,.gal-t:hover .gal-grip{opacity:1}
.gal-up{cursor:default}
.gal-add{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px dashed var(--l8);border-radius:var(--r2);background:transparent;color:var(--t5);font-size:12.5px;cursor:pointer;transition:all .15s}
.gal-add .mono{font-size:9.5px;color:var(--t7)}
.gal-add:hover{border-color:var(--a1);color:var(--t1);background:var(--abg)}

.pkg{border-radius:var(--r3);transition:border-color .15s,box-shadow .15s}
.pkg-file,.pkg-drop{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg2)}
.pkg-drop{border-style:dashed;background:repeating-linear-gradient(135deg,#0e0e0e 0 12px,#0b0b0b 12px 24px)}
.pkg.drag .pkg-drop{border-color:var(--a1)}
.pkg-ic{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--abd2);border-radius:var(--r2);background:var(--abg);color:var(--a2)}
.pkg-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pkg-name{font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pkg-meta{font-size:10.5px;color:var(--t6);display:flex;align-items:center;gap:4px;flex-wrap:wrap}

.pick{display:flex;flex-direction:column;gap:10px}
.pick-list{display:flex;flex-direction:column;gap:4px;max-height:52vh;overflow-y:auto}
.pick-row{display:flex;align-items:center;gap:12px;padding:9px 10px;border:1px solid transparent;border-radius:var(--r2);background:transparent;text-align:left;cursor:pointer}
.pick-row:hover{background:#161616;border-color:var(--l5)}
.pick-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pick-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick-meta{font-size:10.5px;color:var(--t6)}
.pick-refs{font-size:10.5px;color:var(--t6)}

/* таблица */
.tbl{border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg4);overflow-x:auto;overflow-y:hidden;animation:lnRiseS .25s ease}
.tr{display:grid;gap:14px;align-items:center;padding:0 16px;min-height:52px;border-bottom:1px solid var(--l3);transition:background .12s}
.tr:last-child{border-bottom:0}
.th{min-height:36px;background:var(--bg6);font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--t6)}
.tr:not(.th):hover{background:#121212}
.tr-click{cursor:pointer}
.tr.open{background:var(--abg);box-shadow:inset 2px 0 0 var(--a1)}
.tr.off,.tr.dimrow{opacity:.62}
.tr.dimrow:hover,.tr.off:hover{opacity:1}
.tr.warnrow .td:nth-child(3) .chip{border-color:var(--abd2)}
.td{min-width:0;font-size:13px;padding:8px 0;display:flex;align-items:center;gap:6px}
.th .td{font-size:9.5px;padding:0}
.cell2-t.ell{display:block}
.td.num{justify-content:flex-end;text-align:right}
.td.act{justify-content:flex-end}
/* Узкий экран: таблица прокручивается вбок, колонка действий закреплена у правого края. */
.td.act{position:sticky;right:0;z-index:1;align-self:stretch;margin:0 -16px 0 -14px;padding:0 16px 0 14px;background:var(--bg4)}
.th .td.act{background:var(--bg6)}
.tr:not(.th):hover .td.act{background:#121212}
.tr.open .td.act{background:linear-gradient(var(--abg),var(--abg)),var(--bg4)}
.tbl-more{display:flex;justify-content:center;padding:14px 0 4px}
.tr-sub{position:sticky;left:0;padding:12px 16px 16px 56px;border-bottom:1px solid var(--l3);background:#0b0b0b;animation:lnFade .15s}
.cell2{display:flex;flex-direction:column;gap:3px;min-width:0}
.cell2-t{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:500;color:var(--t1);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell2-s{font-size:10.5px;color:var(--t6);display:flex;align-items:center;gap:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcell{display:flex;flex-direction:column;gap:2px}
.tcell-s{font-size:10px;color:var(--t7)}
.sha{display:inline-flex;align-items:center;gap:2px;font-family:var(--mono);font-size:11px;color:var(--t5);white-space:nowrap}
.td>.mono,.td>.ell.mono{font-size:12px}
.td>.mono.dim{font-size:11.5px}
.fbar>.mono{font-size:10.5px;letter-spacing:.06em}
.dev-run .mono,.fb-head .mono{font-size:11px}
.sha .ibtn{opacity:.5}
.sha:hover .ibtn{opacity:1}
.ract{display:inline-flex;align-items:center;gap:4px}
.ord{display:inline-flex;gap:2px;margin-right:4px}

.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg4);margin-bottom:16px;overflow:hidden}
.stat{display:flex;flex-direction:column;gap:6px;padding:15px 18px;border-right:1px solid var(--l3);min-width:0}
.stat:last-child{border-right:0}
.stat-v{font-family:var(--mono);font-size:22px;font-weight:700;color:#fff;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-s{font-size:11.5px;color:var(--t6);display:flex;align-items:center;gap:6px}
.stat-ok .stat-v{color:var(--ok)}
.stat-warn .stat-v{color:var(--warn)}
.stars{display:inline-flex;gap:1px}
.stars svg{fill:#2a2a2a}
.stars .on svg{fill:var(--a2)}
.kv{display:grid;grid-template-columns:120px 1fr;gap:8px 14px;margin:0;font-size:13px}
.kv dt{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--t6);padding-top:2px}
.kv dd{margin:0;color:var(--t2);min-width:0;word-break:break-word}

.fbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.fchips{display:flex;gap:6px;flex-wrap:wrap}
.fchip{height:30px;padding:0 12px;border:1px solid var(--l7);border-radius:15px;background:transparent;color:var(--t5);font-family:var(--mono);font-size:11px;cursor:pointer;transition:all .15s}
.fchip:hover{color:var(--t1);border-color:var(--l9)}
.fchip.on{background:var(--abg);border-color:var(--a1);color:var(--a2)}
.hint-line{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t6);margin:-4px 0 14px}
.link-prog{display:inline-flex;align-items:center;gap:3px;color:var(--t4);margin-left:10px}
a.link-prog:hover{color:var(--a2)}
.thumb{display:block;width:100%;border-radius:var(--r2);overflow:hidden;background:repeating-linear-gradient(135deg,#101010 0 10px,#0d0d0d 10px 20px);border:1px solid var(--l5);position:relative}
.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.thumb-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:9.5px;letter-spacing:.14em;color:var(--t7)}

.picon{display:inline-flex;flex-shrink:0;border-radius:22%;overflow:hidden;background:var(--bg6);border:1px solid var(--l5)}
.picon img{width:100%;height:100%;object-fit:cover;display:block}
.picon-ph{align-items:center;justify-content:center;border:1px dashed var(--l8);background:#101010;font-family:var(--mono);color:var(--t6);letter-spacing:.02em}

.dirty{position:sticky;bottom:16px;z-index:5;display:flex;align-items:center;gap:12px;margin-top:22px;padding:10px 12px 10px 18px;border:1px solid var(--abd2);border-radius:var(--r4);background:rgba(18,12,13,.94);backdrop-filter:blur(10px);box-shadow:0 18px 50px rgba(0,0,0,.6);animation:lnRise .2s ease}
.dirty-dot{width:8px;height:8px;border-radius:50%;background:var(--a1);box-shadow:0 0 10px var(--a1);animation:lnBlink 1.4s steps(1) infinite}
.dirty-t{font-size:13px;color:var(--t2)}
.dirty-k{font-size:10px;color:var(--t7);border:1px solid var(--l6);border-radius:3px;padding:1px 6px}

/* ---------- оверлеи ---------- */
.ov{position:fixed;inset:0;z-index:100;display:flex;animation:lnFade .14s ease}
.ov.out{animation:lnFade .16s ease reverse forwards}
.ov-md{align-items:center;justify-content:center;background:rgba(0,0,0,.62);backdrop-filter:blur(2px);padding:24px}
.md{width:560px;max-width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column;border:1px solid var(--l7);border-radius:var(--r4);background:var(--bg5);box-shadow:0 30px 80px rgba(0,0,0,.7);animation:lnPop .16s ease}
.md-wide{width:760px}
.md-head,.dr-head{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 14px 22px;border-bottom:1px solid var(--l3)}
.md-titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.md-title{font-size:17px;font-weight:600}
.md-sub{font-family:var(--mono);font-size:10.5px;color:var(--t6)}
.md-body{padding:18px 22px;overflow-y:auto}
.md-foot,.dr-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--l3)}
.confirm-body{display:flex;gap:14px;align-items:flex-start}
.confirm-ic{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--r3);background:var(--abg);border:1px solid var(--abd2);color:var(--a2)}
.confirm-text{font-size:13.5px;color:var(--t3);line-height:1.6;padding-top:6px}
.ov-dr{justify-content:flex-end;background:rgba(0,0,0,.55)}
.dr{max-width:calc(100vw - 80px);height:100%;display:flex;flex-direction:column;background:#0e0e0e;border-left:1px solid var(--l7);box-shadow:-30px 0 80px rgba(0,0,0,.6);animation:lnSlide .2s ease}
.ov.out .dr{animation:lnSlide .16s ease reverse forwards}
.dr-head{background:linear-gradient(180deg,rgba(var(--argb),.05),transparent);padding-top:20px}
.dr-title{font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-body{flex:1;overflow-y:auto;padding:20px 24px 28px}
.dr-foot{background:#0b0b0b}
.dr-foot-hint{font-size:10px;color:var(--t7)}
.toasts{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;max-width:560px;padding:10px 16px;border:1px solid var(--abd2);border-radius:var(--r3);background:var(--bg6);box-shadow:0 14px 40px rgba(0,0,0,.6);font-family:var(--mono);font-size:12px;color:var(--t2);animation:lnRise .18s ease;pointer-events:auto}
.toast.out{animation:lnFade .2s ease reverse forwards}
.toast-mark{color:var(--a2);font-weight:700}
.toast-ok{border-color:var(--l7)}
.toast-ok .toast-mark{color:var(--ok)}
.toast-err{border-color:var(--a1);background:#140b0c}
.toast-info .toast-mark{color:var(--t4)}

/* ---------- обзор ---------- */
.dash{display:flex;flex-direction:column;gap:16px}
.hero{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:18px;padding:26px 30px 22px;border:1px solid #1f1f1f;border-radius:var(--r5);background-color:#090909;background-image:radial-gradient(ellipse at 50% 45%,rgba(var(--argb),.15),transparent 62%),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px);animation:lnRiseS .35s ease}
.hero-ascii{font-size:clamp(6px,.62vw,11px)}
.term{display:flex;align-items:center;gap:14px;padding:9px 16px;border:1px solid #232323;border-radius:var(--r3);background:rgba(8,8,8,.85);font-size:12px;color:var(--t5);white-space:nowrap;max-width:100%;overflow:hidden}
.term-u{color:var(--a2)}
.term b{font-weight:600;color:var(--t1)}
.term b.ok{color:var(--ok)}
.term b.bad{color:var(--a2)}
.term-sep{width:1px;height:14px;background:var(--l6)}
.term-cur{display:inline-block;width:7px;height:13px;background:var(--a1);animation:lnBlink 1.1s steps(1) infinite}
.tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.tile{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;padding:15px 16px 14px;border:1px solid var(--l4);border-radius:var(--r4);background:linear-gradient(180deg,#101010,#0d0d0d);min-width:0;transition:border-color .15s,transform .15s;animation:lnRiseS .35s ease both}
a.tile:hover{border-color:var(--l9);transform:translateY(-1px)}
.tile:nth-child(2){animation-delay:.03s}.tile:nth-child(3){animation-delay:.06s}.tile:nth-child(4){animation-delay:.09s}.tile:nth-child(5){animation-delay:.12s}.tile:nth-child(6){animation-delay:.15s}
.tile-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tile-ic{color:var(--t7);transition:color .15s}
a.tile:hover .tile-ic{color:var(--a2)}
.tile-v{font-size:26px;font-weight:700;color:#fff;line-height:1.1;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-s{font-size:11.5px;color:var(--t6);display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden}
.tile.hot{border-color:var(--abd2);background:linear-gradient(180deg,#150d0e,#0e0b0b)}
.tile.hot .tile-v{color:var(--a2)}
.spark{position:absolute;right:0;bottom:0;width:100%;height:34px;opacity:.9;pointer-events:none}
.spark-a{fill:rgba(var(--argb),.12);stroke:none}
.spark-l{fill:none;stroke:var(--a1);stroke-width:1.4;vector-effect:non-scaling-stroke}
.dash-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.dash-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.dash-2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start}
.chart-sum{font-size:10.5px;color:var(--t6)}
.ch{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px}
.ch-y{display:flex;flex-direction:column;justify-content:space-between;height:220px;font-size:9.5px;color:var(--t7);text-align:right;margin-top:-6px;padding-bottom:0}
.ch-plot{position:relative}
.ch-svg{display:block;width:100%;height:220px;overflow:visible}
.ch-grid{stroke:#1c1c1c;stroke-width:1;stroke-dasharray:3 4;vector-effect:non-scaling-stroke}
.ch-bar{fill:url(#chg);opacity:.72;transform-origin:bottom;transform-box:fill-box;animation:lnGrow .5s cubic-bezier(.2,.8,.2,1) both;transition:opacity .12s}
.ch-bar.today{opacity:1;filter:drop-shadow(0 0 6px rgba(var(--argb),.55))}
.ch-bar.hov{opacity:1}
.ch-base{fill:#262626}
.ch-hit{fill:transparent;cursor:crosshair}
.ch-tip{position:absolute;transform:translate(-50%,-6px);display:flex;flex-direction:column;gap:2px;padding:7px 10px;border:1px solid var(--l7);border-radius:var(--r2);background:var(--bg6);box-shadow:0 10px 26px rgba(0,0,0,.6);pointer-events:none;white-space:nowrap;z-index:2;animation:lnFade .1s}
.ch-tip-d{font-size:10px;color:var(--t6)}
.ch-tip-v{font-size:13px;font-weight:600}
.ch-x{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));margin-top:8px;font-size:9.5px;color:var(--t7)}
.ch-x span{text-align:center;white-space:nowrap}
.rank{display:flex;flex-direction:column;gap:2px}
.rank-r{display:grid;grid-template-columns:24px minmax(0,1fr) 90px 48px;gap:10px;align-items:center;padding:7px 8px;border-radius:var(--r2);transition:background .12s}
.rank-r:hover{background:rgba(255,255,255,.035)}
.rank-i{font-size:10.5px;color:var(--t7)}
.rank-r:first-child .rank-i{color:var(--a2)}
.rank-n{display:flex;flex-direction:column;gap:1px;font-size:13px;font-weight:500;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-id{font-size:10px;color:var(--t7);font-weight:400}
.rank-bar,.ver-bar{height:4px;border-radius:2px;background:#1c1c1c;overflow:hidden}
.rank-bar>span,.ver-bar>span{display:block;height:100%;background:var(--a1);border-radius:2px;animation:lnFade .6s}
.rank-v{font-size:12px;text-align:right;color:var(--t2)}
.vers{display:flex;flex-direction:column;gap:9px}
.ver-r{display:grid;grid-template-columns:76px minmax(0,1fr) 36px 40px;gap:10px;align-items:center}
.ver-v{font-size:12px;color:var(--t3)}
.ver-v.ver-top{color:#fff;font-weight:600}
.ver-n{font-size:11px;color:var(--t5);text-align:right}
.ver-c{font-size:10.5px;color:var(--t7);text-align:right}
.ver-r:first-child .ver-bar>span{background:var(--a2)}
.ver-r:not(:first-child) .ver-bar>span{background:#4a4846}
.site{display:flex;flex-direction:column;gap:12px}
.site-st{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--r3);border:1px solid var(--l5);background:var(--bg2)}
.site-ic{width:38px;height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--r3)}
.site-ok .site-ic{background:var(--okbg);border:1px solid var(--okb);color:var(--ok)}
.site-warn .site-ic{background:var(--warnbg);border:1px solid var(--warnb);color:var(--warn)}
.site-err .site-ic{background:var(--abg);border:1px solid var(--abd2);color:var(--a2)}
.site-err{border-color:var(--abd)}
.site-st-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.site-st-h{font-size:14px;font-weight:600}
.site-st-s{font-size:10.5px;color:var(--t6);line-height:1.45}
.site-chks{display:flex;flex-direction:column;gap:6px}
.site-chk{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--t3)}
.site-chk-m{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%}
.site-chk.ok .site-chk-m{background:var(--okbg);color:var(--ok);border:1px solid var(--okb)}
.site-chk.bad .site-chk-m{background:var(--abg);color:var(--a2);border:1px solid var(--abd2)}
.site-chk-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.site-chk-v{font-size:10.5px;color:var(--t6);word-break:break-all}
.site-hint{font-size:12px;color:var(--t5);line-height:1.55;padding:10px 12px;border-left:2px solid var(--abd2);background:rgba(var(--argb),.03)}
.site-foot{display:flex;align-items:center;gap:8px;padding-top:2px}
.site-when{font-size:10.5px;color:var(--t7);white-space:nowrap}
.ch-none{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px dashed var(--l6);border-radius:var(--r3);background:rgba(10,10,10,.85);font-size:11.5px;color:var(--t6);white-space:nowrap}
.set-ver{font-size:10.5px;color:var(--t7)}
.ped-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.ped-body.full{grid-template-columns:minmax(0,1fr)}
.ped-body.full .ped-aside{display:none}
.ped-aside{position:sticky;top:0;display:flex;flex-direction:column;gap:12px}
.ped-aside .pcard{animation:none;pointer-events:none}
.ped-aside .pcard:hover{transform:none}
.ped-tip{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px dashed var(--l6);border-radius:var(--r4);font-size:12px;color:var(--t6);line-height:1.55}
.ped-tip b{color:var(--t3);font-weight:500}
.ped-poster{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center;padding:10px;border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4)}
.ped-poster .thumb{border-radius:var(--r3)}
.ped-poster-t{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--t5)}
.feed{display:flex;flex-direction:column}
.feed-r{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--l2)}
.feed-r:last-child{border-bottom:0}
.feed-t{font-size:12.5px;color:var(--t4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feed-ts{font-size:10px;color:var(--t7);white-space:nowrap}
.au-chip{max-width:150px;overflow:hidden;text-overflow:ellipsis;text-transform:none;letter-spacing:.02em}
.au-d{color:var(--t6)}
.quick{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.quick-i{min-width:0;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg2);font-size:13px;color:var(--t2);transition:all .15s}
.quick-i>span:nth-child(2){flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quick-i:hover{border-color:var(--abd2);background:var(--abg);color:#fff}
.quick-ic{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--r2);background:#141414;border:1px solid var(--l6);color:var(--a2)}

/* ---------- программы ---------- */
.pcard{display:flex;flex-direction:column;border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);overflow:hidden;transition:border-color .15s,transform .15s,box-shadow .15s;animation:lnRiseS .3s ease both}
.pcard:hover{border-color:var(--l9);transform:translateY(-2px);box-shadow:0 16px 40px -18px rgba(0,0,0,.9)}
.pcard-cover{position:relative;aspect-ratio:16/9;background:#0b0b0b;overflow:hidden;border-bottom:1px solid var(--l3)}
.pcard-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.pcard:hover .pcard-cover img{transform:scale(1.03)}
.pcard-cover.ph{background:repeating-linear-gradient(135deg,#101010 0 14px,#0d0d0d 14px 28px);display:flex;align-items:center;justify-content:center}
.pcard-code{font-size:34px;font-weight:700;color:#232323;letter-spacing:.06em}
.pcard-chips{position:absolute;left:10px;top:10px;display:flex;gap:5px;flex-wrap:wrap}
.pcard-chips .chip{background:rgba(8,8,8,.82);backdrop-filter:blur(4px)}
.pcard-lvl{position:absolute;right:10px;top:10px}
.pcard-lvl .chip{background:rgba(8,8,8,.82)}
.pcard-body{display:flex;flex-direction:column;gap:10px;padding:14px 16px 13px;flex:1}
.pcard-head{display:flex;align-items:center;gap:12px;margin-top:-34px;position:relative}
.pcard-head .picon{box-shadow:0 0 0 3px var(--bg4);background:var(--bg4)}
.pcard-t{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:24px}
.pcard-name{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard-meta{font-size:10px;color:var(--t6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard-sum{font-size:12.5px;color:var(--t4);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:37px}
.pcard-foot{display:flex;align-items:center;gap:12px;padding-top:10px;border-top:1px solid var(--l2);font-size:11px;color:var(--t5)}
.pcard-foot .ic{display:inline-block;vertical-align:-2px}
.pcard-ver{color:var(--t2);font-weight:600}
.pcard-rt{color:var(--a2)}

.ped{display:flex;flex-direction:column;gap:18px}
.ped-sum{display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--l4);border-radius:var(--r4);background:linear-gradient(90deg,rgba(var(--argb),.05),transparent 40%),var(--bg4)}
.ped-sum-t{display:flex;flex-direction:column;gap:5px;min-width:0}
.ped-name{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:700;color:#fff;min-width:0}
.ped-meta{font-size:10.5px;color:var(--t6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ped-stats{display:flex;gap:0;border-left:1px solid var(--l3)}
.ped-st{display:flex;flex-direction:column;gap:3px;padding:0 18px;border-right:1px solid var(--l3);min-width:96px}
.ped-st:last-child{border-right:0}
.ped-st-v{font-size:16px;font-weight:700;color:var(--t1)}
.ped-st-s{font-size:9.5px;color:var(--t7);white-space:nowrap}
.ped-new{font-size:11px;color:var(--t6);padding:0 6px}
.ped-pane{min-height:200px}
.soon-wrap:empty{display:none}

.rel{display:flex;flex-direction:column;gap:14px;max-width:1180px}
.rel-top{display:flex;align-items:center;gap:14px;padding:14px 18px;border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4)}
.rel-top-t{display:flex;flex-direction:column;gap:4px}
.rel-top-s{font-size:12.5px;color:var(--t4)}
.rel-list{display:flex;flex-direction:column;gap:10px}
.relc{border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);overflow:hidden;animation:lnRiseS .3s ease both;transition:border-color .15s}
.relc:hover{border-color:#333}
.relc.draft{border-style:dashed;background:#0c0c0c}
.relc-head{display:flex;align-items:center;gap:8px;padding:12px 14px 12px 18px;flex-wrap:wrap}
.relc-ver{font-size:17px;font-weight:700;color:#fff;margin-right:4px}
.relc-meta{font-size:10.5px;color:var(--t6);margin-left:8px;display:inline-flex;align-items:center;gap:4px}
.relc-pub{font-size:10px;color:var(--t6);margin-right:2px}
.relc-notes{margin:0;padding:0 18px 10px 36px;font-size:12.5px;color:var(--t4);display:flex;flex-direction:column;gap:3px;overflow-wrap:anywhere;min-width:0}
.relc-notes li::marker{color:var(--a1)}
.relc-files{display:flex;flex-direction:column;border-top:1px solid var(--l2)}
.relf{display:flex;align-items:center;gap:10px;padding:9px 14px 9px 18px;border-bottom:1px solid var(--l2);font-size:12.5px;min-width:0}
.relf:last-child{border-bottom:0}
.relf-plat{font-size:11px;color:var(--t2);min-width:120px}
.relf-name{min-width:0;flex-shrink:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--t3)}
.relf-size{font-size:11px;color:var(--t6);white-space:nowrap}
.relf-entry{font-size:10.5px;color:var(--t6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.relf-none{color:var(--a2);font-size:11px}
.rfiles{display:flex;flex-direction:column;gap:10px}
.rfiles-rows{display:flex;flex-direction:column;gap:10px}
.rfiles-rows:empty{display:none}
.rfiles-add{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 12px;border:1px dashed var(--l6);border-radius:var(--r3)}
.rfiles-add .mlabel{margin-right:6px}
.rfile{display:flex;flex-direction:column;gap:12px;padding:12px 14px 14px;border:1px solid var(--l5);border-radius:var(--r4);background:#0c0c0c;animation:lnRiseS .2s ease}
.rfile-head{display:flex;align-items:center;gap:10px}
.rfile-n{font-size:11px;color:var(--a2);font-weight:700}
.rfile-plat{width:200px}
.rfile-extra{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* ---------- контент ---------- */
.nlist,.blist,.ntf,.revs{display:flex;flex-direction:column;gap:10px}
.nrow{display:grid;grid-template-columns:168px minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 14px 12px 12px;border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);animation:lnRiseS .3s ease both;transition:border-color .15s}
.nrow:hover,.brow:hover,.ntf-r:hover{border-color:#333}
.nrow.off,.brow.off,.ccard.off,.faq-i.off{opacity:.62}
.nrow-b,.ntf-b{display:flex;flex-direction:column;gap:5px;min-width:0;cursor:pointer;outline-offset:4px}
.nrow-chips{display:flex;gap:5px;flex-wrap:wrap}
.nrow-t{font-size:15px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nrow-b:hover .nrow-t,.ntf-b:hover .nrow-t{color:#fff}
.nrow-s{font-size:12.5px;color:var(--t5);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.nrow-m{font-size:10.5px;color:var(--t6);display:flex;align-items:center;flex-wrap:wrap}
.brow{display:grid;grid-template-columns:28px 300px minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 14px;border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);animation:lnRiseS .3s ease both;transition:border-color .15s}
.brow-n{font-size:12px;color:var(--a2);font-weight:700}
.brow-prev{cursor:pointer;border-radius:var(--r3);overflow:hidden}
.brow-prev .bnp{font-size:5.6px}
.brow-prev .bnp-x,.brow-prev .bnp-m{display:none}
.brow-prev .bnp-t{-webkit-line-clamp:1}
.brow-b{display:flex;flex-direction:column;gap:5px;min-width:0}
.brow-a{display:flex;align-items:center;gap:6px}
.bnp{position:relative;aspect-ratio:21/9;border-radius:var(--r3);overflow:hidden;border:1px dashed var(--l6);background:repeating-linear-gradient(135deg,#101010 0 14px,#0d0d0d 14px 28px);font-size:10px}
.bnp-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bnp-ph{position:absolute;right:4%;top:8%;font-size:1.1em;letter-spacing:.14em;color:var(--t7)}
.bnp-grad{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,11,11,.96) 0%,rgba(11,11,11,.75) 40%,rgba(11,11,11,0) 72%)}
.bnp-c{position:absolute;left:5.5%;bottom:9%;width:58%;display:flex;flex-direction:column;gap:.9em}
.bnp-chip{align-self:flex-start;font-size:1.05em;letter-spacing:.12em;padding:.3em .9em;border-radius:2px;color:var(--a2);border:1px solid var(--abd2);background:rgba(10,10,10,.6)}
.bnp-t{font-size:3.2em;line-height:1.1;font-weight:700;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bnp-x{font-size:1.45em;line-height:1.55;color:var(--t3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bnp-m{font-size:1.1em;color:var(--t5)}
.bnp-btns{display:flex;gap:.8em;padding-top:.3em}
.bnp-b{height:3.6em;display:inline-flex;align-items:center;padding:0 1.6em;border:1px solid #3a3836;border-radius:4px;background:rgba(10,10,10,.6);color:var(--t1);font-size:1.25em;font-weight:500}
.bnp-b.pri{background:var(--a1);border-color:var(--a1);color:#fff;font-weight:600}
.bnp-b.sq{padding:0;width:3.6em;justify-content:center}
.bnp-b .ic{width:1.2em;height:1.2em}
.bnp-wrap .bnp{font-size:8.4px}
.cgrid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.ccard{display:flex;flex-direction:column;border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);overflow:hidden;animation:lnRiseS .3s ease both;transition:border-color .15s}
.ccard:hover{border-color:#333}
.ccard-cover{position:relative;aspect-ratio:16/9;background:repeating-linear-gradient(135deg,#101010 0 14px,#0d0d0d 14px 28px);cursor:pointer;overflow:hidden}
.ccard-cover img{width:100%;height:100%;object-fit:cover;display:block}
.ccard-n{position:absolute;left:10px;top:10px;font-size:10px;padding:2px 6px;border-radius:2px;background:rgba(0,0,0,.75);color:var(--a2);font-weight:700}
.ccard-off{position:absolute;right:10px;top:10px}
.ccard-b{display:flex;flex-direction:column;gap:6px;padding:13px 14px}
.ccard-t{font-size:15px;font-weight:600}
.ccard-s{font-size:12.5px;color:var(--t5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccard-icons{display:flex;align-items:center;gap:5px;min-height:28px;margin-top:2px}
.ccard-f{display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid var(--l2);font-size:10.5px}
.pp{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pp-col{display:flex;flex-direction:column;gap:8px;min-width:0;padding:10px;border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg2)}
.pp-h{display:flex;align-items:center;justify-content:space-between}
.pp-cnt{font-size:10px;color:var(--t6)}
.pp-list{display:flex;flex-direction:column;gap:2px;height:280px;overflow-y:auto}
.pp-i{display:flex;align-items:center;gap:10px;padding:6px 8px;border:0;border-radius:var(--r2);background:transparent;text-align:left;cursor:pointer;min-width:0}
.pp-i:hover{background:#151515}
.pp-i.sel{cursor:default;background:#111}
.pp-n{flex:1;min-width:0;display:flex;flex-direction:column;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-id{font-size:10px;color:var(--t7)}
.pp-add{color:var(--t7)}
.pp-i:hover .pp-add{color:var(--a2)}
.pp-num{font-size:10px;color:var(--a2);font-weight:700;width:18px}
.pp-empty{padding:30px 10px;text-align:center;font-size:11.5px;color:var(--t7)}
.npv{display:flex;gap:12px;padding:12px 14px;border:1px solid var(--l5);border-radius:var(--r4);background:#121212;box-shadow:0 20px 50px -20px rgba(0,0,0,.8);max-width:440px}
.npv-ic{width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--r3);border:1px solid var(--l6);background:#161616;color:var(--t3)}
.npv-ic.k-upd{border-color:var(--okb);background:var(--okbg);color:var(--ok)}
.npv-ic.k-news{border-color:var(--abd2);background:var(--abg);color:var(--a2)}
.npv-b{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.npv-t{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600}
.npv-dot{width:7px;height:7px;border-radius:50%;background:var(--a1);margin-left:auto;flex-shrink:0}
.npv-x{font-size:12.5px;color:var(--t4);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.npv-m{font-size:10px;color:var(--t6);display:flex;align-items:center;gap:4px}
.npv-a{margin-left:auto;color:var(--a2)}
.ntf-r{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);animation:lnRiseS .3s ease both;transition:border-color .15s}
.faq{display:flex;flex-direction:column;gap:8px;max-width:1100px}
.faq-i{border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);animation:lnRiseS .3s ease both;transition:border-color .15s}
.faq-i:hover{border-color:#333}
.faq-i summary{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;list-style:none}
.faq-i summary::-webkit-details-marker{display:none}
.faq-n{font-size:11px;color:var(--a2);font-weight:700}
.faq-chev{color:var(--t6);transition:transform .15s}
.faq-i[open] .faq-chev{transform:rotate(90deg);color:var(--a2)}
.faq-q{font-size:14px;font-weight:500;min-width:0;overflow-wrap:anywhere}
.faq-act{display:flex;align-items:center;gap:6px}
.faq-a{padding:0 18px 16px 64px;font-size:13px;color:var(--t4);line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;animation:lnFade .15s}

/* ---------- сборки лаунчера ---------- */
.lb-top{margin-bottom:16px}
.lb-cur{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border:1px solid var(--l4);border-radius:var(--r4);background:linear-gradient(90deg,rgba(var(--argb),.06),transparent 55%),var(--bg4)}
.lb-cur-h{display:flex;align-items:baseline;gap:12px;font-size:10.5px}
.lb-cur-list{display:flex;gap:10px;flex-wrap:wrap}
.lb-cur-i{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 12px;align-items:center;padding:10px 14px;border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg2);min-width:240px}
.lb-cur-v{grid-row:span 2;font-size:20px;font-weight:700;color:#fff}
.lb-cur-t{display:flex;align-items:center;gap:8px;font-size:12px}
.lb-cur-s{font-size:10px}
.lb-cur-none{font-size:11.5px}
.lb-ver{font-size:14px;font-weight:700;color:#fff;display:inline-flex;align-items:center;gap:8px}
.lb-live{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:lnPulse 2.4s infinite}

/* ---------- люди ---------- */
.usr{display:flex;align-items:center;gap:12px;min-width:0}
.exp-m{color:var(--t7);transition:transform .15s;display:inline-flex}
.exp-m.on{transform:rotate(90deg);color:var(--a2)}
.devs{display:flex;flex-direction:column;gap:6px}
.dev{display:grid;grid-template-columns:32px minmax(180px,1fr) minmax(0,1.4fr) auto;gap:12px;align-items:center;padding:8px 12px;border:1px solid var(--l4);border-radius:var(--r3);background:var(--bg4)}
.dev-ic{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r2);border:1px solid var(--l6);color:var(--t5)}
.dev-run{display:flex;gap:5px;flex-wrap:wrap;min-width:0}
.dev-seen{font-size:10.5px}
.dev-none{font-size:11.5px;padding:6px 0}
.fb{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:16px;align-items:start}
.fb-list{display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 230px);overflow-y:auto;padding-right:2px;position:sticky;top:0}
.fb-i{display:flex;flex-direction:column;gap:5px;padding:11px 13px;border:1px solid var(--l4);border-radius:var(--r3);background:var(--bg4);text-align:left;cursor:pointer;transition:border-color .15s,background .15s;animation:lnRiseS .25s ease both}
.fb-i:hover{border-color:#333}
.fb-i.on{border-color:var(--a1);background:var(--abg);box-shadow:inset 2px 0 0 var(--a1)}
.fb-i.done{opacity:.7}
.fb-i-top{display:flex;align-items:center;gap:8px;min-width:0}
.fb-st{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--a1);box-shadow:0 0 8px rgba(var(--argb),.6)}
.fb-st.done{background:var(--ok);box-shadow:none}
.fb-topic{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-ago{font-size:10px;white-space:nowrap}
.fb-txt{font-size:12.5px;color:var(--t5);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fb-meta{font-size:10px;color:var(--t7)}
.fb-insp{min-width:0}
.fb-card{display:flex;flex-direction:column;gap:14px;padding:18px 20px;border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);animation:lnRiseS .25s ease}
.fb-head{display:flex;align-items:center;gap:10px}
.fb-id{font-size:13px;font-weight:700;color:var(--a2)}
.fb-title{font-size:19px;font-weight:700;color:#fff}
.fb-text{padding:14px 16px;border:1px solid var(--l4);border-left:2px solid var(--a1);border-radius:var(--r3);background:var(--bg2);font-size:13.5px;line-height:1.65;color:var(--t2);white-space:pre-wrap;word-break:break-word}
.fb-log-h{display:flex;align-items:center;gap:10px;font-size:10.5px}
.logv{margin:0;max-height:340px;overflow:auto;padding:12px 14px;border:1px solid var(--l4);border-radius:var(--r3);background:#080808;font-family:var(--mono);font-size:11px;line-height:1.6;color:var(--t4);white-space:pre-wrap;word-break:break-all}
.logv .l-err{color:var(--a2)}
.logv .l-warn{color:var(--warn)}
.fb-act{display:flex;align-items:center;gap:8px}
.rev{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--l4);border-radius:var(--r4);background:var(--bg4);animation:lnRiseS .3s ease both}
.rev.low{border-left:2px solid var(--abd2)}
.rev-h{display:flex;align-items:center;gap:12px}
.rev-t{font-size:13.5px;color:var(--t2);line-height:1.6;white-space:pre-wrap;word-break:break-word}
.rev-f{display:flex;align-items:center;gap:16px;font-size:10.5px;color:var(--t5)}
.rev-f .link-prog{margin-left:0}
.rev-f .ic{display:inline-block;vertical-align:-2px}

/* ---------- система ---------- */
.fthumb{width:48px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;overflow:hidden;border:1px solid var(--l5);background:var(--bg2);color:var(--a2)}
.fthumb img{width:100%;height:100%;object-fit:cover}
.fthumb.ph{border-style:dashed}
.upl-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:28px;border:1px dashed var(--l8);border-radius:var(--r4);background:repeating-linear-gradient(135deg,#0f0f0f 0 12px,#0c0c0c 12px 24px);color:var(--t4);cursor:pointer;transition:all .15s}
.upl-zone .mono{font-size:10.5px}
.upl-zone:hover,.upl-zone.drag{border-color:var(--a1);color:#fff}
.upl-zone:hover .ic,.upl-zone.drag .ic{color:var(--a2)}
.upl-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}
.set-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start;max-width:1440px}
.set-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.set-card.flash{animation:lnFlash 1.4s ease}
.set-lead{font-size:12.5px;color:var(--t5);line-height:1.6}
.set-act{display:flex;align-items:center;gap:8px;padding-top:2px}
.set-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--abd);border-radius:var(--r3);background:var(--abg);font-size:12.5px;color:var(--t3);line-height:1.6}
.set-note .ic{color:var(--a2);margin-top:3px}
.set-note.small{font-size:12px}
.sec-st{font-size:11px}
.sec-st.ok{color:var(--ok)}
.sec-st.bad{color:var(--a2)}
.test-res:empty{display:none}
.test-wait{display:flex;align-items:center;gap:8px;font-size:11.5px;padding:10px 0}
.spin{width:13px;height:13px;border:2px solid #333;border-top-color:var(--a2);border-radius:50%;animation:lnSpin .7s linear infinite;display:inline-block}
.test-ok{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--l5);border-radius:var(--r3);background:var(--bg2);animation:lnFade .2s}
.test-h{display:flex;align-items:center;gap:8px;font-size:13px}
.test-h.ok{color:var(--ok)}
.test-h.ok b{color:var(--t1)}
.test-h.bad{color:var(--a2);padding:12px 14px;border:1px solid var(--abd2);border-radius:var(--r3);background:var(--abg);animation:lnFade .2s}
.cmp{display:grid;grid-template-columns:20px 120px minmax(0,1fr);gap:10px;align-items:start;padding:8px 0;border-top:1px solid var(--l3);font-size:12.5px}
.cmp-m{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.cmp.ok .cmp-m{background:var(--okbg);color:var(--ok);border:1px solid var(--okb)}
.cmp.bad .cmp-m{background:var(--abg);color:var(--a2);border:1px solid var(--abd2)}
.cmp-t{color:var(--t3)}
.cmp-v{display:flex;flex-direction:column;gap:2px;font-size:10.5px;color:var(--t6);word-break:break-all}
.cmp-v b{font-weight:500;color:var(--t2)}
.test-hint{font-size:12px;color:var(--warn);line-height:1.55;padding-top:6px;border-top:1px solid var(--l3)}
.xfer{display:flex;align-items:flex-start;gap:6px}
.xfer>.fld{flex:1}
.xfer>.ibtn{margin-top:25px}
.fp{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--abd);border-radius:var(--r3);background:linear-gradient(90deg,var(--abg),transparent)}
.fp-v{display:flex;gap:10px;font-size:20px;font-weight:700;color:#fff;letter-spacing:.04em;flex:1}
.fp-v span:nth-child(odd){color:var(--a2)}
.keybox{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border:1px solid var(--l5);border-radius:var(--r3);background:#080808}
.keybox-v{flex:1;min-width:0;font-size:12px;color:var(--t2);word-break:break-all;user-select:all}
.keybox.big .keybox-v{font-size:17px;font-weight:700;color:#fff;letter-spacing:.06em}
.adm{display:flex;flex-direction:column}
.adm-r{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--l2)}
.adm-r:last-child{border-bottom:0}
.ava.ava-me{background:var(--a1);color:#fff;border-color:var(--a1)}

/* ---------- адаптивность (до 1024 px) ---------- */
@media (max-width:1440px){
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dash-grid{grid-template-columns:minmax(0,1fr) 330px}
}
@media (max-width:1280px){
  :root{--side:214px}
  .sect{flex-wrap:wrap;row-gap:0}
  .sect-t{border-right:0;max-width:none;flex:1 1 auto}
  .sect .tabs{order:3;flex:1 0 100%;height:44px;border-top:1px solid var(--l2);margin:0 -28px;padding:0 28px}
  .dash-grid{grid-template-columns:1fr}
  .dash-side{display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .dash-side>.card:last-child:nth-child(odd){grid-column:span 2}
  .media-grid{grid-template-columns:160px minmax(0,1fr)}
  .media-grid>.fld:last-child{grid-column:1/-1;max-width:260px}
  .set-grid{grid-template-columns:1fr}
  .brow{grid-template-columns:28px 240px minmax(0,1fr)}
  .brow-a{grid-column:2/-1;justify-content:flex-end}
  .ped-stats .ped-st:nth-child(4){display:none}
  .ped-body{grid-template-columns:minmax(0,1fr)}
  .ped-aside{display:none}
  .auth{grid-template-columns:480px 1fr}
}
@media (max-width:1140px){
  .view{padding:18px 20px 56px}
  .top,.sect{padding-left:20px;padding-right:20px}
  .sect .tabs{margin:0 -20px;padding:0 20px}
  .tabs{gap:16px}
  .dash-2{grid-template-columns:1fr}
  .form-grid.two{grid-template-columns:1fr}
  .row3{grid-template-columns:1fr 1fr}
  .rfile-extra{grid-template-columns:1fr}
  .fb{grid-template-columns:300px minmax(0,1fr)}
  .nrow{grid-template-columns:130px minmax(0,1fr)}
  .nrow>.ract{grid-column:2;justify-content:flex-end}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--l3)}
  .ped-sum{flex-wrap:wrap}
  .ped-stats{border-left:0;width:100%;padding-top:10px;border-top:1px solid var(--l3)}
  .ped-st:first-child{padding-left:0}
  .auth{grid-template-columns:1fr 1fr}
  .auth-lead{font-size:18px}
  .top-search{width:300px}
  .dev{grid-template-columns:32px minmax(0,1fr) auto}
  .dev-run{grid-column:2/-1}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
