
:root { --bg:#f7f7f5; --fg:#1d1d1b; --muted:#6b6b66; --line:#deded8; --accent:#1f5eff; --bad:#b42318; --ok:#067647; --warn:#b54708; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; background:var(--bg); color:var(--fg); }
header { display:flex; gap:1.5rem; align-items:center; padding:.75rem 1.5rem; border-bottom:1px solid var(--line); background:#fff; }
header strong { margin-right:auto; }
header a { color:var(--fg); text-decoration:none; }
header a[aria-current="page"] { color:var(--accent); font-weight:600; }
main { max-width:1100px; margin:0 auto; padding:1.5rem; }
h1 { font-size:1.4rem; margin:0 0 1rem; }
h2 { font-size:1.1rem; margin:1.5rem 0 .5rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:1rem; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:1rem; }
.card .label { color:var(--muted); font-size:.85rem; }
.card .value { font-size:1.5rem; font-weight:600; }
table { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); }
th, td { text-align:left; padding:.45rem .6rem; border-bottom:1px solid var(--line); font-size:.9rem; vertical-align:top; }
th { color:var(--muted); font-weight:500; }
code, pre { font:12.5px/1.4 ui-monospace, monospace; }
pre { white-space:pre-wrap; word-break:break-word; background:#fff; border:1px solid var(--line); padding:.75rem; border-radius:6px; }
.status-dead, .status-failed, .bad { color:var(--bad); font-weight:600; }
.status-done, .ok { color:var(--ok); }
.status-running { color:var(--warn); }
form.inline { display:inline; }
button { font:inherit; padding:.4rem .9rem; border-radius:6px; border:1px solid var(--accent); background:var(--accent); color:#fff; cursor:pointer; }
button.secondary { background:#fff; color:var(--accent); }
label { display:block; margin:.6rem 0 .2rem; font-weight:500; }
input { font:inherit; padding:.4rem .5rem; border:1px solid var(--line); border-radius:6px; width:100%; max-width:320px; }
.notice { padding:.6rem .9rem; border-radius:6px; margin-bottom:1rem; background:#ecfdf3; border:1px solid #abefc6; }
.notice.error { background:#fef3f2; border-color:#fecdca; }
.login { max-width:360px; margin:12vh auto; }
.muted { color:var(--muted); }
.filters a { margin-right:.75rem; }
