:root{
  --bg:#0a0710; --panel:#0e0a16; --card:#130e1d; --card2:#1a1327; --card3:#211833; --input:#0c0912;
  --bd:rgba(255,255,255,.07); --bd2:rgba(255,255,255,.14);
  --a:#a855f7; --a2:#bb7dff; --at:#c99bff; --ag:rgba(168,85,247,.14); --ab:rgba(168,85,247,.5);
  --tx:#f4f0fa; --tx2:#a69bbd; --tx3:#6f6585;
  --ok:#3ddc97; --okb:rgba(61,220,151,.12); --wn:#f0b429; --wnb:rgba(240,180,41,.12); --er:#ff5d7a; --erb:rgba(255,93,122,.12); --bl:#5b9bff; --blb:rgba(91,155,255,.12);
  --sans:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif; --mono:'JetBrains Mono',ui-monospace,Consolas,monospace;
  --sbw:264px; --top:58px; --r:12px;
}
[data-theme="light"]{
  --bg:#f5f2fa; --panel:#ffffff; --card:#ffffff; --card2:#f0eaf8; --card3:#e7def4; --input:#faf8fd;
  --bd:rgba(26,18,40,.09); --bd2:rgba(26,18,40,.18);
  --a:#9333ea; --a2:#7e22ce; --at:#7e22ce; --ag:rgba(147,51,234,.1); --ab:rgba(147,51,234,.45);
  --tx:#1a1228; --tx2:#5e5478; --tx3:#8c82a3;
  --okb:rgba(16,160,100,.12); --ok:#0f9d63; --wn:#b7791f; --wnb:rgba(183,121,31,.12); --er:#d6264c; --erb:rgba(214,38,76,.1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scrollbar-color:#2b2142 transparent}
body{font-family:var(--sans);font-size:14px;line-height:1.55;background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.mono{font-family:var(--mono)} .mut{color:var(--tx3)}
svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

.app{display:flex;min-height:100vh}
.side{width:var(--sbw);flex:none;background:var(--panel);border-right:1px solid var(--bd);position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;z-index:30}
.brand{display:flex;align-items:center;gap:8px;height:var(--top);padding:0 22px;border-bottom:1px solid var(--bd)}
.brand img{height:30px;width:auto} .brand small{font:700 .62rem var(--mono);letter-spacing:.18em;color:var(--at);border:1px solid var(--ab);border-radius:5px;padding:2px 6px}
[data-theme="light"] .brand img{filter:invert(1) hue-rotate(180deg)}
.me{display:flex;gap:11px;align-items:center;margin:14px 12px 4px;padding:11px 12px;border:1px solid var(--bd);border-radius:11px;background:var(--card)}
.me .av{width:34px;height:34px;border-radius:9px;background:var(--a);color:#fff;display:grid;place-items:center;font:700 .78rem var(--mono)}
.me b{display:block;font-size:.88rem;line-height:1.2} .me span{display:flex;align-items:center;gap:6px;font-size:.74rem;color:var(--tx3)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block}
.side nav{padding:6px 0 24px}
.grp{font:700 .64rem var(--sans);letter-spacing:.14em;color:var(--tx3);padding:20px 24px 6px}
.ni{display:flex;align-items:center;gap:11px;margin:1px 10px;padding:8px 12px;border-radius:9px;color:var(--tx2);font-weight:500;position:relative;transition:.12s}
.ni:hover{background:rgba(168,85,247,.07);color:var(--tx)}
.ni.on{background:var(--ag);color:var(--tx);font-weight:600}
.ni.on::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--a)}
.ni em{margin-left:auto;font:700 .66rem var(--mono);font-style:normal;background:var(--a);color:#fff;border-radius:6px;padding:1px 7px}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{height:var(--top);display:flex;align-items:center;gap:10px;padding:0 32px;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:20}
.crumbs{display:flex;align-items:center;gap:8px;color:var(--tx3);font-size:.84rem;flex:1;min-width:0;white-space:nowrap;overflow:hidden}
.crumbs i{font-style:normal;opacity:.5} .crumbs b{color:var(--tx);font-weight:600;overflow:hidden;text-overflow:ellipsis} .crumbs a:hover{color:var(--tx)}
.search{display:flex;align-items:center;gap:9px;height:36px;padding:0 12px;min-width:230px;border-radius:9px;background:var(--card);border:1px solid var(--bd);color:var(--tx3);cursor:pointer}
.search:hover{border-color:var(--bd2)} .search kbd{margin-left:auto;font:600 .64rem var(--mono);padding:2px 6px;border:1px solid var(--bd2);border-radius:5px}
.ib{width:36px;height:36px;border-radius:9px;background:var(--card);border:1px solid var(--bd);display:grid;place-items:center;cursor:pointer;position:relative}
.ib:hover{border-color:var(--bd2);background:var(--card2)} .pip{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--er)}
.burger{display:none;width:36px;height:36px;border-radius:9px;background:var(--card);border:1px solid var(--bd);place-items:center;cursor:pointer}

.content{padding:30px 32px 40px;flex:1;max-width:1500px;width:100%}
.phead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;flex-wrap:wrap}
.phead h1{font-size:1.85rem;font-weight:700;letter-spacing:-.02em;line-height:1.15}
.phead p{color:var(--tx2);margin-top:4px}
.pact{display:flex;gap:10px;flex-wrap:wrap}
.foot{display:flex;justify-content:space-between;padding:18px 32px;border-top:1px solid var(--bd);color:var(--tx3);font-size:.78rem}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border-radius:9px;border:1px solid var(--bd2);background:var(--card);font-weight:600;font-size:.86rem;cursor:pointer;transition:.12s;white-space:nowrap}
.btn:hover{border-color:var(--ab);background:var(--card2)}
.btn.p{background:var(--a);border-color:var(--a);color:#fff} .btn.p:hover{background:var(--a2)}
.btn.d{color:var(--er);border-color:rgba(255,93,122,.35)} .btn.d:hover{background:var(--erb)}
.btn.s{height:32px;padding:0 12px;font-size:.8rem} .btn[disabled]{opacity:.5;cursor:not-allowed}
.btn svg{width:15px;height:15px}

.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);margin-bottom:18px}
.card>h3,.ch{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--bd);font-size:.95rem;font-weight:600}
.ch .sub{font-weight:400;color:var(--tx3);font-size:.8rem}
.cb{padding:18px}
.grid{display:grid;gap:18px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g21{grid-template-columns:2fr 1fr}
.kpi{padding:16px 18px} .kpi span{display:block;font-size:.76rem;color:var(--tx3);font-weight:500;letter-spacing:.02em} .kpi b{display:block;font-size:1.9rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-top:2px} .kpi small{color:var(--tx3);font-size:.78rem}
.kpi.hot b{color:var(--at)}

.tabs{display:flex;gap:2px;border-bottom:1px solid var(--bd);margin-bottom:16px;overflow-x:auto}
.tabs a{padding:10px 16px;color:var(--tx2);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a:hover{color:var(--tx)} .tabs a.on{color:var(--tx);border-color:var(--a);font-weight:600} .tabs a em{font:600 .68rem var(--mono);font-style:normal;color:var(--tx3);margin-left:6px}
.bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.bar input[type=search],.bar input[type=text],.bar select{height:38px}
.chips{display:flex;gap:6px;flex-wrap:wrap} .chip{height:32px;padding:0 13px;border-radius:99px;border:1px solid var(--bd2);display:inline-flex;align-items:center;font-size:.82rem;color:var(--tx2);font-weight:500} .chip.on{background:var(--ag);border-color:var(--ab);color:var(--tx)}

input[type=text],input[type=search],input[type=email],input[type=password],input[type=number],input[type=date],input[type=file],select,textarea{width:100%;background:var(--input);border:1px solid var(--bd2);border-radius:9px;padding:9px 12px;outline:none;font-size:.88rem}
input:focus,select:focus,textarea:focus{border-color:var(--a);box-shadow:0 0 0 3px var(--ag)}
textarea{min-height:90px;resize:vertical} select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--tx3) 50%),linear-gradient(135deg,var(--tx3) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}
label.f{display:block;margin-bottom:14px;font-size:.8rem;font-weight:600;color:var(--tx2)} label.f>*:not(span){margin-top:6px;font-weight:400}
label.f small{display:block;color:var(--tx3);font-weight:400;margin-top:5px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.inline{display:inline}.chk{display:flex;align-items:center;gap:9px;font-weight:500;color:var(--tx)} .chk input{width:auto}

.tw{overflow-x:auto;border:1px solid var(--bd);border-radius:var(--r);background:var(--card)}
table{width:100%;border-collapse:collapse;font-size:.86rem}
th{font:700 .66rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--tx3);text-align:left;padding:12px 16px;border-bottom:1px solid var(--bd);white-space:nowrap;background:var(--card2)}
td{padding:12px 16px;border-bottom:1px solid var(--bd);vertical-align:middle}
tr:last-child td{border-bottom:0}
tbody tr:hover td{background:rgba(168,85,247,.04)}
td .sub{display:block;color:var(--tx3);font-size:.78rem;margin-top:1px}
td b{font-weight:600} td a.l{font-weight:600} td a.l:hover{color:var(--at)}
td.r,th.r{text-align:right} td.cb2{width:36px;padding-right:0} td.cb2 input{width:16px;height:16px;accent-color:var(--a)}
.empty{padding:40px 20px;text-align:center;color:var(--tx3)}
.key{cursor:pointer;font-size:.8rem} .key:hover{color:var(--at)}

.st,.tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:6px;font-size:.74rem;font-weight:600;white-space:nowrap}
.st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.st-ok{background:var(--okb);color:var(--ok)}.st-warn{background:var(--wnb);color:var(--wn)}.st-bad{background:var(--erb);color:var(--er)}.st-info{background:var(--blb);color:var(--bl)}
.tag{background:var(--card3);color:var(--tx2);font-weight:600}
.k-fivem{background:rgba(168,85,247,.16);color:var(--at)}.k-bot{background:rgba(88,101,242,.18);color:#9aa5ff}.k-site{background:rgba(45,212,191,.14);color:#4fe0cf}.k-autre{background:var(--card3)}
.sev-crit{background:var(--erb);color:var(--er)}.sev-warn{background:var(--wnb);color:var(--wn)}.sev-info{background:var(--blb);color:var(--bl)}

.flash{padding:12px 16px;border-radius:10px;margin-bottom:16px;border:1px solid;font-weight:500}
.flash.ok{background:var(--okb);border-color:rgba(61,220,151,.4);color:var(--ok)}.flash.bad{background:var(--erb);border-color:rgba(255,93,122,.4);color:var(--er)}.flash.info{background:var(--blb);border-color:rgba(91,155,255,.4);color:var(--bl)}
.kv{display:grid;grid-template-columns:170px 1fr;gap:0}.kv>div{padding:11px 18px;border-bottom:1px solid var(--bd)}.kv>div:nth-child(odd){color:var(--tx3);font-size:.82rem}.kv>div:nth-last-child(-n+2){border-bottom:0}
.pager{display:flex;gap:12px;align-items:center;justify-content:center;padding:16px;color:var(--tx3)} .pg{padding:6px 14px;border:1px solid var(--bd2);border-radius:8px}.pg:hover{border-color:var(--a)}
.spark{display:flex;align-items:flex-end;gap:3px;height:90px;padding:14px 18px 0}.spark i{flex:1;background:var(--ab);border-radius:3px 3px 0 0;min-height:2px;position:relative}.spark i:hover{background:var(--a)}
.spark-l{display:flex;justify-content:space-between;padding:6px 18px 14px;color:var(--tx3);font-size:.72rem}
.live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(61,220,151,.6);animation:pl 2s infinite;margin-right:6px}@keyframes pl{70%{box-shadow:0 0 0 7px rgba(61,220,151,0)}100%{box-shadow:0 0 0 0 rgba(61,220,151,0)}}
.bulk{display:none;gap:10px;align-items:center;padding:10px 16px;background:var(--ag);border:1px solid var(--ab);border-radius:10px;margin-bottom:12px}.bulk.on{display:flex}
code,.code{font-family:var(--mono);font-size:.82rem;background:var(--card3);padding:2px 7px;border-radius:5px;word-break:break-all}
.secret{display:block;padding:12px 14px;border:1px dashed var(--ab);border-radius:9px;background:var(--ag);font-family:var(--mono);word-break:break-all;font-size:.84rem}
pre.log{background:var(--input);border:1px solid var(--bd);border-radius:9px;padding:14px;overflow:auto;font:500 .78rem/1.6 var(--mono);max-height:340px}

.kmodal{position:fixed;inset:0;background:rgba(5,3,10,.7);backdrop-filter:blur(4px);z-index:100;display:grid;place-items:start center;padding-top:12vh}
.kmodal[hidden]{display:none}.kbox{width:min(640px,92vw);background:var(--card);border:1px solid var(--bd2);border-radius:14px;padding:14px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.kbox input{height:46px;font-size:1rem}.kres{margin-top:8px;max-height:46vh;overflow:auto}.kres a{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:9px}.kres a:hover,.kres a.sel{background:var(--ag)}.kbox p{margin-top:8px;font-size:.76rem}

.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 500px at 70% -10%,rgba(168,85,247,.18),transparent),var(--bg)}
.auth .box{width:min(420px,100%);background:var(--card);border:1px solid var(--bd2);border-radius:16px;padding:32px}
.auth img{height:36px;margin-bottom:22px}.auth h1{font-size:1.4rem;margin-bottom:4px}.auth p{color:var(--tx2);margin-bottom:22px}
.auth .btn{width:100%;height:44px}
.qr{display:grid;place-items:center;background:#fff;border-radius:12px;padding:14px;width:fit-content;margin:8px 0}

@media(max-width:1100px){.g4{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr}.g21,.g2{grid-template-columns:1fr}}
@media(max-width:860px){
  .side{position:fixed;left:-290px;transition:.2s}.side.open{left:0;box-shadow:0 0 0 100vmax rgba(0,0,0,.55)}
  .burger{display:grid}.top{padding:0 14px}.content{padding:20px 14px}.search{min-width:0}.search kbd{display:none}
  .g4,.g3,.row,.row3{grid-template-columns:1fr}.kv{grid-template-columns:1fr}.kv>div:nth-child(odd){padding-bottom:0;border-bottom:0}
}
