:root { --bg:#f6f7f9; --fg:#1d232a; --muted:#6b7480; --line:#d9dee5; --accent:#1f5fbf; --danger:#b42318; --ok:#067647; --warn-bg:#fff4e5; --warn-fg:#7a4100; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif; color:var(--fg); background:var(--bg); }
main { max-width:1200px; margin:0 auto; padding:16px; }
.topbar { display:flex; justify-content:space-between; align-items:center; padding:10px 16px; background:#fff; border-bottom:1px solid var(--line); }
.topbar nav a { margin-right:16px; color:var(--fg); text-decoration:none; }
.topbar nav a.brand { font-weight:600; }
.inline { display:inline; }
.muted { color:var(--muted); }
button.link { background:none; border:0; color:var(--accent); cursor:pointer; padding:0 0 0 8px; font:inherit; }
.card { background:#fff; border:1px solid var(--line); border-radius:6px; padding:16px; margin-bottom:16px; }
.card.narrow { max-width:380px; margin:48px auto; }
label { display:block; margin-bottom:10px; }
input, select { width:100%; padding:6px 8px; border:1px solid var(--line); border-radius:4px; font:inherit; margin-top:3px; }
button, .btn { padding:6px 12px; border:1px solid var(--line); border-radius:4px; background:#fff; font:inherit; cursor:pointer; text-decoration:none; color:var(--fg); }
button.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
button.danger { color:var(--danger); border-color:var(--danger); }
.error { color:var(--danger); }
.ok { color:var(--ok); }
.banner { padding:10px 16px; background:var(--warn-bg); color:var(--warn-fg); border-bottom:1px solid #f3d3a5; }
.messages { list-style:none; padding:0; margin:0 0 12px; }
.messages li { padding:8px 12px; border-radius:4px; margin-bottom:6px; background:#e8f1ff; }
.messages li.error { background:#fde8e6; color:var(--danger); }
.messages li.success { background:#e3f5ea; color:var(--ok); }
.filters { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:10px; align-items:end; }
.filters .actions { display:flex; gap:8px; }
.toolbar { display:flex; justify-content:space-between; align-items:center; margin:12px 0; gap:12px; flex-wrap:wrap; }
table { width:100%; border-collapse:collapse; background:#fff; }
th, td { text-align:left; padding:7px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th a { color:var(--fg); text-decoration:none; }
th a.active { color:var(--accent); }
tr.removed td { color:var(--muted); }
.pagination { display:flex; gap:6px; align-items:center; margin-top:12px; flex-wrap:wrap; }
.pagination .current { font-weight:600; }
dl.details { display:grid; grid-template-columns:200px 1fr; gap:6px 12px; }
dl.details dt { color:var(--muted); }
code { word-break:break-all; }
progress { width:100%; height:16px; }
@media (max-width:700px) { .topbar { flex-direction:column; gap:8px; } th:nth-child(3), td:nth-child(3) { display:none; } }
