:root { --brand:#0e6b4f; --ink:#1c2321; --muted:#6b7770; --line:#dde4df; --bg:#f4f7f5; }
* { box-sizing:border-box; }
body { margin:0; font-family:"Segoe UI", Tahoma, Arial, sans-serif; background:var(--bg); color:var(--ink); }
.topbar { display:flex; justify-content:space-between; align-items:center; padding:.7rem 1.2rem; background:var(--brand); color:#fff; }
.topbar a { color:#fff; text-decoration:none; margin-inline-start:1rem; }
.topbar .brand { font-weight:700; font-size:1.15rem; margin:0; }
.topbar nav { display:flex; align-items:center; gap:.6rem; }
.inline-form { display:inline; margin:0; }
.link-btn { background:none; border:none; color:#fff; cursor:pointer; font:inherit; text-decoration:underline; padding:0; }
.container { max-width:960px; margin:1.5rem auto; padding:0 1rem; }
h1 { font-size:1.4rem; margin:1rem 0; }
h2 { font-size:1.05rem; }
.card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:1rem 1.2rem; margin:.8rem 0; }
.card.narrow { max-width:430px; margin:3rem auto; }
label { display:block; margin:.6rem 0 .2rem; font-weight:600; }
input[type=text],input[type=password],input[type=email],input[type=search],input[type=datetime-local],input,select { width:100%; padding:.5rem .6rem; border:1px solid var(--line); border-radius:6px; font:inherit; }
button.primary, .primary-link { background:var(--brand); color:#fff; border:none; border-radius:6px; padding:.55rem 1.2rem; font:inherit; cursor:pointer; text-decoration:none; display:inline-block; margin-top:.8rem; }
.error { color:#b3261e; font-size:.9rem; }
.hint { color:var(--muted); font-size:.85rem; }
.notice { background:#eef6f1; border:1px solid var(--line); border-radius:6px; padding:.5rem .8rem; }
.stats-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:.7rem; margin:1rem 0; }
.stat { background:#fff; border:1px solid var(--line); border-radius:10px; padding:.8rem; text-align:center; }
.stat .num { display:block; font-size:1.5rem; font-weight:700; color:var(--brand); }
.stat .lbl { color:var(--muted); font-size:.8rem; }
table { width:100%; border-collapse:collapse; font-size:.9rem; }
th, td { text-align:right; padding:.45rem .5rem; border-bottom:1px solid var(--line); }
th { color:var(--muted); font-weight:600; }
.searchbar { display:flex; gap:.5rem; max-width:430px; }
.searchbar input { flex:1; }
.pagination { display:flex; gap:1rem; justify-content:center; margin-top:.8rem; font-size:.9rem; }
form.disabled { opacity:.65; }
