:root { --bg:#fafaf8; --fg:#1d2420; --muted:#68726c; --line:#dcdfd9; --accent:#1f6f5c; --warn:#b4531f; --row:#fff; }
@media (prefers-color-scheme: dark) { :root { --bg:#161a18; --fg:#e6ebe7; --muted:#92a099; --line:#2c3431; --accent:#58b79e; --warn:#e08a52; --row:#1b201e; } }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:15px/1.45 system-ui, sans-serif; }
nav { display:flex; flex-wrap:wrap; gap:4px 18px; align-items:center; padding:10px 16px; border-bottom:1px solid var(--line); }
nav a { color:var(--fg); text-decoration:none; padding:2px 0; } nav a.on { border-bottom:2px solid var(--accent); }
nav .push { margin-left:auto; } nav form { display:inline; }
main { padding:16px; max-width:1300px; margin:0 auto; }
h1 { font-size:1.3rem; margin:.2rem 0 1rem; } h2 { font-size:1.05rem; margin:1.6rem 0 .5rem; }
a { color:var(--accent); }
.msg { background:var(--row); border-left:4px solid var(--accent); padding:8px 12px; margin:0 0 12px; }
.banner { background:var(--row); border-left:4px solid var(--warn); padding:8px 12px; margin-bottom:12px; }
.filters { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:12px; }
input, select, button { font:inherit; color:inherit; background:var(--row); border:1px solid var(--line); border-radius:4px; padding:4px 8px; }
button { cursor:pointer; background:var(--accent); color:#fff; border-color:var(--accent); } button.quiet { background:var(--row); color:var(--fg); border-color:var(--line); }
table { width:100%; border-collapse:collapse; background:var(--row); }
th, td { text-align:left; padding:6px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
th { color:var(--muted); font-weight:600; font-size:.85rem; } td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
small, .muted { color:var(--muted); } .neg { color:var(--warn); } tr.total td { font-weight:600; }
.login { max-width:320px; margin:12vh auto; display:grid; gap:10px; } .error { color:var(--warn); }
.pager { margin:12px 0; display:flex; gap:12px; align-items:center; }
td form { margin:0; } td form button.quiet { padding:0 6px; font-size:.8rem; margin-top:4px; }
.toast { position:fixed; top:12px; left:50%; transform:translateX(-50%); background:var(--row); border:1px solid var(--accent); padding:8px 14px; border-radius:6px; box-shadow:0 2px 10px #0003; z-index:10; }
.toast.error { border-color:var(--warn); } tr.fade { opacity:0; transition:opacity .25s; }
