:root{
  --bg:#0b0e14; --panel:#121722; --panel-2:#0f141e; --line:#1e2636;
  --text:#e6edf3; --muted:#8b97a8; --accent:#4c8dff; --good:#3fb950; --warn:#d29922; --bad:#f85149;
  --radius:12px; --gap:16px;
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text)}
.hidden{display:none!important}
.muted{color:var(--muted)}
.error{color:var(--bad);min-height:1.2em;margin:.4rem 0 0}

/* Login */
.login{min-height:100vh;display:grid;place-items:center}
.login-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px;width:320px;display:flex;flex-direction:column;gap:10px}
.login-card .brand{margin:0;font-size:34px;letter-spacing:2px}
.login-card input{background:var(--panel-2);border:1px solid var(--line);color:var(--text);padding:10px 12px;border-radius:8px}
.login-card button{background:var(--accent);color:#fff;border:0;padding:11px;border-radius:8px;cursor:pointer;font-weight:600}

/* Shell */
.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.sidebar{background:var(--panel-2);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:6px}
.logo{font-weight:700;letter-spacing:1px;margin-bottom:14px}
.logo .ver{color:var(--muted);font-weight:400;font-size:.8rem}
#nav{display:flex;flex-direction:column;gap:2px;flex:1}
.navbtn{text-align:left;background:transparent;border:0;color:var(--muted);padding:9px 12px;border-radius:8px;cursor:pointer;font-size:.95rem;text-transform:capitalize}
.navbtn:hover{background:var(--panel)}
.navbtn.active{background:var(--panel);color:var(--text)}
.who{display:flex;flex-direction:column;gap:4px;font-size:.8rem;border-top:1px solid var(--line);padding-top:10px}
.link{background:none;border:0;color:var(--accent);cursor:pointer;text-align:left;padding:0;font-size:.8rem}

.content{padding:26px 30px;overflow:auto}
h2.section-title{margin:0 0 18px;font-size:1.4rem;text-transform:capitalize}

/* Dashboard cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--gap)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.card .label{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}
.card .value{font-size:1.7rem;font-weight:700;margin-top:6px}
.card .sub{color:var(--muted);font-size:.8rem;margin-top:4px}
.tag{display:inline-block;font-size:.65rem;padding:2px 6px;border-radius:5px;border:1px solid var(--line);color:var(--muted);vertical-align:middle;margin-left:6px}
.tag.est{color:var(--warn);border-color:var(--warn)}
.tag.det{color:var(--good);border-color:var(--good)}
.empty{color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);padding:22px;text-align:center}
.panel-note{color:var(--muted);max-width:640px;line-height:1.5}
