:root{--bg:#0b1220;--panel:#111a2b;--card:#152036;--line:#22314d;--text:#e6edf7;--mute:#8b9bb5;
--pri:#0ea5e9;--ok:#22c55e;--bad:#ef4444;--warn:#f59e0b;--r:14px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 "Segoe UI",Tahoma,"Noto Kufi Arabic",sans-serif}
.hidden{display:none!important}
a{color:var(--pri);text-decoration:none}
.brand{display:flex;gap:10px;align-items:center;padding:6px 4px 18px}
.brand b{display:block;font-size:16px}.brand small{color:var(--mute);font-size:12px}
.logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#0ea5e9,#22c55e);display:grid;place-items:center;font-weight:800;font-size:20px;color:#04111f}
.brand.big .logo{width:48px;height:48px;font-size:24px}
#app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
#side{background:var(--panel);border-left:1px solid var(--line);padding:18px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
nav{display:flex;flex-direction:column;gap:4px;flex:1}
nav a{color:var(--text);padding:10px 12px;border-radius:10px;opacity:.85}
nav a:hover{background:var(--card);opacity:1}
nav a.on{background:var(--card);opacity:1;box-shadow:inset -3px 0 var(--pri)}
.me{border-top:1px solid var(--line);padding-top:12px;display:flex;justify-content:space-between;align-items:center;color:var(--mute);font-size:13px}
.topbar{display:none}
main{padding:26px 30px;max-width:1300px;width:100%}
h1{font-size:22px;margin:0 0 18px}
h2{font-size:16px;margin:26px 0 10px;color:var(--mute);font-weight:600}
.grid{display:grid;gap:14px}
.kpis{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.kpi small{color:var(--mute);display:block}.kpi b{font-size:28px}.kpi i{font-style:normal;color:var(--mute);font-size:13px}
.types{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.bar{height:8px;background:#22314d;border-radius:6px;overflow:hidden;margin-top:8px}.bar span{display:block;height:100%;background:var(--ok)}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
th,td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--mute);font-weight:600;font-size:13px;background:#13203a}
tr.click{cursor:pointer}tr.click:hover td{background:#1a2742}
.tablewrap{overflow-x:auto}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:6px;background:var(--mute)}
.dot.on{background:var(--ok);box-shadow:0 0 0 3px #22c55e33}.dot.off{background:var(--bad)}
.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;background:#22314d;color:var(--mute)}
.pill.bad{background:#ef444422;color:#fca5a5}.pill.ok{background:#22c55e22;color:#86efac}.pill.warn{background:#f59e0b22;color:#fcd34d}
.toolbar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
input,select{background:#0e1729;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 12px;font:inherit;width:100%}
input:focus,select:focus{outline:2px solid #0ea5e955;border-color:var(--pri)}
.toolbar input{max-width:340px}
label{display:block;color:var(--mute);font-size:13px;margin-bottom:12px}label input,label select{margin-top:6px}
.btn{border:0;border-radius:10px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;background:#22314d;color:var(--text)}
.btn.primary{background:var(--pri);color:#04111f}.btn:disabled{opacity:.5}
.link{background:none;border:0;color:var(--pri);cursor:pointer;font:inherit}
.form{max-width:520px}
.token{font:600 20px/1.4 Consolas,monospace;letter-spacing:1px;background:#0e1729;border:1px dashed var(--pri);border-radius:12px;padding:14px;text-align:center;direction:ltr;user-select:all}
.mono{font-family:Consolas,monospace;direction:ltr;display:inline-block}
.copy{margin-right:8px;font-size:12px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:8px 14px}.kv dt{color:var(--mute)}.kv dd{margin:0}
.err{color:#fca5a5;min-height:1em}
.muted{color:var(--mute)}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{width:100%;max-width:380px}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#1e293b;border:1px solid var(--line);padding:10px 18px;border-radius:10px;opacity:0;transition:.25s;pointer-events:none}
.toast.show{opacity:1}
.spin{color:var(--mute);padding:40px;text-align:center}
@media(max-width:860px){
 #app{grid-template-columns:1fr}
 #side{position:fixed;inset:0 0 0 auto;width:250px;z-index:5;transform:translateX(100%);transition:.2s}
 #side.open{transform:none}
 .topbar{display:flex;gap:12px;align-items:center;padding:12px 16px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:4}
 .icon{background:none;border:0;color:var(--text);font-size:22px;cursor:pointer}
 main{padding:18px 14px}
 .kv{grid-template-columns:110px 1fr}
}
.link.more{display:block;width:100%;padding:12px;text-align:center;border-top:1px solid var(--line,#1e293b)}
.toolbar select{max-width:200px}
html,body{overflow-x:hidden}
main{min-width:0}
@media(max-width:860px){
 #app{grid-template-columns:minmax(0,1fr)}
 #side{box-shadow:-12px 0 40px #000a}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .types{grid-template-columns:repeat(2,minmax(0,1fr))}
 th,td{white-space:nowrap}
}
@media(max-width:860px){
 #side{position:fixed;top:0;bottom:0;right:0;left:auto;inset:0 0 0 auto;width:min(80vw,280px);height:100dvh;overflow-y:auto;transform:translateX(105%);visibility:hidden;transition:transform .2s,visibility .2s}
 #side.open{transform:none;visibility:visible}
 #shade{position:fixed;inset:0;background:#0008;z-index:4;display:none}
 #side.open+#shade{display:block}
 main{overflow-x:clip}
 body.menu-open{overflow:hidden}
}
