:root{
  --bg:#0b0f14; --panel:#121a24; --panel2:#0e151d; --line:#1e2a38;
  --fg:#e6edf3; --muted:#8b9bb0; --acc:#22d3a5; --acc2:#3b82f6; --danger:#ef4444;
  --font:'Segoe UI',system-ui,-apple-system,Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:radial-gradient(1200px 600px at 50% -10%,#12202e,#0b0f14);color:var(--fg);font-family:var(--font);min-height:100vh}
a{color:inherit;text-decoration:none}
.brand{font-weight:800;font-size:1.35rem;letter-spacing:.5px}
.brand span{color:var(--acc)}

/* ---------- login ---------- */
.login-body{display:flex;align-items:center;justify-content:center}
.login-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:34px 30px;width:min(92vw,380px);box-shadow:0 20px 60px rgba(0,0,0,.5);
  display:flex;flex-direction:column;gap:14px;margin:8vh auto}
.login-card .sub{color:var(--muted);font-size:.85rem;margin-bottom:6px}
.login-card label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}
.login-card input{background:var(--panel2);border:1px solid var(--line);border-radius:10px;
  padding:12px;color:var(--fg);font-size:1rem;outline:none;transition:border .15s}
.login-card input:focus{border-color:var(--acc)}
.login-card button{margin-top:6px;background:linear-gradient(90deg,var(--acc),var(--acc2));
  border:0;border-radius:10px;padding:13px;font-size:1rem;font-weight:700;color:#04121a;cursor:pointer}
.login-card button:hover{filter:brightness(1.08)}
.login-card .foot{text-align:center;color:var(--muted);font-size:.72rem;margin-top:4px}
.alert{background:rgba(239,68,68,.12);border:1px solid var(--danger);color:#ffb4b4;
  border-radius:10px;padding:10px;font-size:.85rem}

/* ---------- painel ---------- */
.topbar{display:flex;justify-content:space-between;align-items:center;
  padding:16px 26px;border-bottom:1px solid var(--line);background:rgba(10,15,20,.7);backdrop-filter:blur(8px);position:sticky;top:0;z-index:5}
.top-right{display:flex;align-items:center;gap:14px}
.who{color:var(--muted);font-size:.85rem}
.btn-ghost{border:1px solid var(--line);border-radius:8px;padding:7px 14px;font-size:.85rem}
.btn-ghost:hover{border-color:var(--acc);color:var(--acc)}
main{max-width:1180px;margin:0 auto;padding:34px 22px 60px}
h1{font-size:1.6rem;margin-bottom:4px}
.muted{color:var(--muted);font-size:.9rem;margin-bottom:26px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.card{display:flex;gap:14px;background:var(--panel);border:1px solid var(--line);
  border-radius:14px;padding:16px;transition:transform .12s,border-color .12s,box-shadow .12s}
.card:hover{transform:translateY(-3px);border-color:var(--acc);box-shadow:0 12px 30px rgba(0,0,0,.4)}
.ico{font-size:1.9rem;width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  background:var(--panel2);border-radius:11px;border:1px solid var(--line);flex:0 0 auto}
.card-body h3{font-size:1.02rem;margin-bottom:4px}
.card-body p{color:var(--muted);font-size:.82rem;line-height:1.4;margin-bottom:10px}
.meta{display:flex;align-items:center;gap:8px;font-size:.74rem;color:var(--muted)}
.dot{width:9px;height:9px;border-radius:50%;background:#4b5563;box-shadow:0 0 0 3px rgba(75,85,99,.2)}
.dot.up{background:var(--acc);box-shadow:0 0 0 3px rgba(34,211,165,.25)}
.tag{margin-left:auto;border:1px solid var(--line);border-radius:20px;padding:2px 9px;text-transform:lowercase}
.cat-core:hover{border-color:var(--acc2)}
.foot-bar{text-align:center;color:var(--muted);font-size:.75rem;padding:18px;border-top:1px solid var(--line)}
