:root {
  color-scheme: light dark;
  --bg: #fafafa; --fg: #1a1a1a; --muted: #666;
  --line: #e2e2e2; --card: #fff; --accent: #2b6cb0; --danger: #c53030;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #141414; --fg: #f0f0f0; --muted: #999;
    --line: #2c2c2c; --card: #1c1c1c; --accent: #7aa7d9; --danger: #f47174;
  }
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font: 15px/1.5 system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
}
main { max-width: 60rem; margin: 0 auto; padding: 2rem 1rem 4rem; }
h1 { font-size: 1.35rem; margin: 0; letter-spacing: -.01em; }
.bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.card {
  background: var(--card); border: 1px solid var(--line);
  border-radius: .5rem; padding: 1rem; margin-bottom: 1.5rem;
}
.row { display: flex; gap: .75rem; align-items: flex-end; margin-bottom: .75rem; }
.row:last-child { margin-bottom: 0; }
.grow { flex: 1; }
label { display: block; font-size: .8rem; color: var(--muted); margin-bottom: .25rem; }
.hint { opacity: .7; }
input {
  width: 100%; padding: .5rem .6rem; border: 1px solid var(--line);
  border-radius: .35rem; background: var(--bg); color: var(--fg); font: inherit;
}
input:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
button {
  padding: .5rem .9rem; border: 1px solid var(--line); border-radius: .35rem;
  background: var(--accent); color: #fff; font: inherit; cursor: pointer; white-space: nowrap;
}
button.quiet { background: transparent; color: var(--muted); }
button.danger { background: transparent; color: var(--danger); border-color: var(--line); }
table { width: 100%; border-collapse: collapse; font-size: .9rem; }
th, td { text-align: left; padding: .5rem .4rem; border-bottom: 1px solid var(--line); }
th { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
td.target { max-width: 20rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
td.actions { text-align: right; white-space: nowrap; }
td.actions button { padding: .25rem .5rem; font-size: .8rem; }
tr.inactive td { opacity: .55; }
.badge {
  font-size: .7rem; border: 1px solid var(--line); border-radius: .25rem;
  padding: 0 .3rem; margin-left: .4rem; color: var(--muted);
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
.error {
  color: var(--danger); border: 1px solid var(--danger); border-radius: .35rem;
  padding: .5rem .6rem; margin: 0 0 1rem; font-size: .9rem;
}
.empty { color: var(--muted); margin: 0; }
.login { max-width: 22rem; margin: 4rem auto 0; }
.login h1 { margin-bottom: 1rem; }
.login label { margin-top: .75rem; }
.login button { width: 100%; margin-top: 1rem; }
