:root{--bg:#0f1720;--card:#16212e;--line:#263546;--tx:#dbe4ee;--mut:#8aa0b6;
  --good:#3ec77a;--warn:#e7b53c;--bad:#ef5b6b;--accent:#4aa3ff}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);font:14px/1.45 -apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--accent);text-decoration:none}
header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
header h1{font-size:18px;margin:0}
.meta{display:flex;gap:16px;align-items:center;color:var(--mut);font-size:12px}
.strip{display:flex;flex-wrap:wrap;gap:12px;padding:16px 18px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 16px;min-width:130px}
.tile span{display:block;color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.tile b{font-size:20px}
table.grid{width:100%;border-collapse:collapse;font-size:13px}
.grid th,.grid td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.grid th:first-child,.grid td.name{text-align:left}
.grid th{color:var(--mut);font-weight:600;text-align:right;position:sticky;top:0;background:var(--bg)}
.grid td.name{max-width:260px;overflow:hidden;text-overflow:ellipsis}
.badge{padding:2px 8px;border:1px solid var(--line);border-radius:20px;font-size:11px;color:var(--mut)}
tr.st-active .badge{color:var(--good);border-color:var(--good)}
tr.st-paused .badge,tr.st-outofbudget .badge{color:var(--warn);border-color:var(--warn)}
.good{color:var(--good)} .warn{color:var(--warn)} .bad{color:var(--bad)}
.events{padding:16px 18px}
.events h2{font-size:14px;color:var(--mut)}
.events ul{list-style:none;padding:0;margin:0;max-height:280px;overflow:auto}
.events code{color:var(--mut);font-size:12px}
.foot{padding:12px 18px;color:var(--mut);font-size:12px}
/* login */
body.login{display:flex;min-height:100vh;align-items:center;justify-content:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px;width:300px;display:flex;flex-direction:column;gap:10px}
.card h1{font-size:18px;margin:0 0 6px}
.card input{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--tx)}
.card button{background:var(--accent);border:0;border-radius:8px;padding:10px;color:#04121f;font-weight:600;cursor:pointer}
.card .err{color:var(--bad);font-size:12px;margin:0}
@media(max-width:640px){.grid th:nth-child(2),.grid td:nth-child(2),.grid th:nth-child(7),.grid td:nth-child(7){display:none}}
