:root { --bg:#fff; --fg:#111; --muted:#666; --line:#e3e3e3; --accent:#0a7d5a; --warn:#a11; }
* { box-sizing: border-box; }
body { margin:0; font:14px/1.5 -apple-system,Segoe UI,Roboto,sans-serif; color:var(--fg); background:var(--bg); }
.topnav { display:flex; gap:18px; align-items:center; padding:12px 20px; border-bottom:1px solid var(--line); }
.topnav a { color:var(--fg); text-decoration:none; }
.topnav a.active { text-decoration:underline; }
.topnav .brand { font-weight:700; font-size:19px; margin-right:8px; }
.topnav .spacer { flex:1; }
main { padding:20px; max-width:1100px; }
h1 { font-size:22px; margin:0 0 16px; }
table { border-collapse:collapse; width:100%; }
th, td { text-align:left; padding:6px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }
.muted { color:var(--muted); }
.err { color:var(--warn); font-weight:600; }
.ok { color:var(--accent); font-weight:600; }
.card { border:1px solid var(--line); border-radius:8px; padding:14px; margin-bottom:16px; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
body.login { display:grid; place-items:center; height:100vh; }
body.login form { display:grid; gap:10px; width:260px; }
input, select, button { font:inherit; padding:7px 9px; border:1px solid var(--line); border-radius:6px; }
button { background:var(--fg); color:#fff; border-color:var(--fg); cursor:pointer; }

tr.flagged td { background:#fff8e1; }
input.tags { width:170px; }
button.flagbtn { background:none; color:var(--fg); border:none; font-size:17px; padding:2px 6px; line-height:1; }
