:root{--bg:#0b0d14;--bg2:#11141f;--card:rgba(255,255,255,.04);--line:rgba(255,255,255,.08);--tx:#e8eaf3;--mut:#8b91a7;
--acc:#6d7cff;--acc2:#a06bff;--ok:#3ddc97;--warn:#ffb84d;--bad:#ff5d73;--r:14px;--nav:240px}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{background:radial-gradient(900px 500px at 80% -10%,rgba(109,124,255,.16),transparent),var(--bg);color:var(--tx);
font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--acc)}h1{font-size:1.5rem;margin:0 0 .25rem}h2{font-size:1.05rem;margin:0 0 .75rem}
.shell{display:grid;grid-template-columns:var(--nav) 1fr;min-height:100vh}
.side{background:var(--bg2);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px}
.brand{font-weight:700;font-size:1.15rem;padding:6px 10px 14px;background:linear-gradient(90deg,var(--acc),var(--acc2));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav a{display:flex;align-items:center;gap:10px;padding:11px 12px;min-height:44px;border-radius:10px;color:var(--mut);text-decoration:none;transition:.15s}
.nav a:hover{background:var(--card);color:var(--tx)}.nav a.on{background:linear-gradient(90deg,rgba(109,124,255,.22),rgba(160,107,255,.12));color:var(--tx)}
.nav a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.user{margin-top:auto;padding:10px;border-top:1px solid var(--line);color:var(--mut);font-size:.85rem}
main{padding:24px;max-width:1200px;width:100%;animation:in .25s ease}
@keyframes in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.sub{color:var(--mut);margin:0}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;backdrop-filter:blur(8px)}
.stat .v{font-size:1.9rem;font-weight:700}.stat .l{color:var(--mut);font-size:.85rem}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.75rem;border:1px solid var(--line);color:var(--mut)}
.b-ok{color:var(--ok);border-color:rgba(61,220,151,.4)}.b-warn{color:var(--warn);border-color:rgba(255,184,77,.4)}
.b-bad{color:var(--bad);border-color:rgba(255,93,115,.4)}.b-acc{color:var(--acc);border-color:rgba(109,124,255,.4)}
.demo{position:fixed;right:12px;bottom:76px;z-index:5;background:var(--warn);color:#000;font-weight:700;font-size:.7rem;padding:3px 9px;border-radius:99px}
button,.btn{font:inherit;min-height:44px;padding:0 18px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--tx);cursor:pointer;transition:.15s}
button:hover{border-color:var(--acc)}.primary{background:linear-gradient(90deg,var(--acc),var(--acc2));border:0;font-weight:600}
.danger{border-color:rgba(255,93,115,.5);color:var(--bad)}button:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
input,select{font:inherit;min-height:44px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--tx)}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--mut);font-weight:500;font-size:.8rem}.mono{font-family:ui-monospace,monospace;font-size:.8rem;word-break:break-all}
.list{display:grid;gap:12px}.empty{color:var(--mut);padding:24px;text-align:center}
.toggle{display:flex;justify-content:space-between;align-items:center;gap:10px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.65);display:grid;place-items:center;z-index:20;padding:16px}
.modal .card{max-width:440px;width:100%;background:var(--bg2)}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{max-width:380px;text-align:center}
.chart{width:100%;height:120px}.bar{height:8px;border-radius:9px;background:var(--line);overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--acc),var(--acc2))}
.bottom{display:none}
@media (max-width:820px){
 .shell{grid-template-columns:1fr}.side{display:none}main{padding:16px 14px 90px}
 .bottom{display:flex;position:fixed;left:0;right:0;bottom:0;background:var(--bg2);border-top:1px solid var(--line);z-index:10;padding-bottom:env(safe-area-inset-bottom);overflow-x:auto}
 .bottom a{flex:1 0 64px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:56px;font-size:.68rem;color:var(--mut);text-decoration:none;gap:2px}
 .bottom a.on{color:var(--acc)}.bottom a span{font-size:1.2rem}
 table.cards thead{display:none}table.cards,table.cards tbody,table.cards tr,table.cards td{display:block;width:100%}
 table.cards tr{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;padding:8px 12px}
 table.cards td{border:0;padding:4px 0}table.cards td::before{content:attr(data-l);display:block;color:var(--mut);font-size:.72rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
