:root { --ink:#1d2433; --muted:#667085; --line:#e4e7ec; --bg:#f6f7f9; --accent:#1f3a68; --ok:#067647; --err:#b42318; }
* { box-sizing: border-box; }
body { margin:0; font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color:var(--ink);
  background:var(--bg); font-size:15px; line-height:1.45; }
header.top { background:#fff; border-bottom:1px solid var(--line); }
header.top .in { max-width:1100px; margin:0 auto; padding:12px 20px; display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
header.top .brand { font-weight:700; color:var(--accent); text-decoration:none; font-size:17px; }
header.top nav { display:flex; gap:16px; flex-wrap:wrap; flex:1; }
header.top nav a { color:var(--ink); text-decoration:none; font-size:14px; }
header.top nav a:hover { color:var(--accent); text-decoration:underline; }
header.top .user { font-size:13px; color:var(--muted); }
header.top .user a { color:var(--muted); }
main { max-width:1100px; margin:0 auto; padding:24px 20px 60px; }
main.narrow { max-width:560px; }
h1 { font-size:22px; margin:0 0 16px; }
h2 { font-size:17px; margin:28px 0 10px; }
h3 { font-size:15px; margin:18px 0 8px; }
.card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:18px 20px; margin-bottom:16px; }
table.list { width:100%; border-collapse:collapse; background:#fff; }
table.list th, table.list td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; font-size:14px; }
table.list th { color:var(--muted); font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.03em; }
table.list td.num, table.list th.num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
label { display:block; font-weight:600; font-size:13px; margin:12px 0 4px; }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], input[type=month], select, textarea {
  width:100%; padding:9px 10px; border:1px solid #cfd4dc; border-radius:7px; font-size:15px; font-family:inherit; background:#fff; }
textarea { min-height:70px; }
.row { display:flex; gap:14px; flex-wrap:wrap; }
.row > div { flex:1; min-width:140px; }
.btn, button { display:inline-block; padding:9px 16px; border-radius:7px; border:1px solid var(--accent); background:var(--accent);
  color:#fff; font-size:14px; font-weight:600; cursor:pointer; text-decoration:none; font-family:inherit; }
.btn.ghost, button.ghost { background:#fff; color:var(--accent); }
.btn.small, button.small { padding:5px 10px; font-size:13px; }
.actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:16px; }
.inline { display:inline; }
.flash { padding:10px 14px; border-radius:8px; margin-bottom:12px; font-size:14px; }
.flash.ok { background:#ecfdf3; color:var(--ok); border:1px solid #abefc6; }
.flash.error { background:#fef3f2; color:var(--err); border:1px solid #fecdca; }
.flash.info { background:#eff4ff; color:#1849a9; border:1px solid #b2ccff; }
.muted { color:var(--muted); font-size:13px; }
.badge { display:inline-block; padding:1px 8px; border-radius:20px; font-size:12px; background:#eef2f6; color:#364152; }
.badge.manuel { background:#fff4e5; color:#93370d; }
.badge.import { background:#f4f3ff; color:#5925dc; }
.big-total { font-size:22px; font-weight:700; }
.filters { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:16px; }
.filters a { padding:5px 12px; border-radius:20px; border:1px solid var(--line); background:#fff; text-decoration:none; color:var(--ink); font-size:13px; }
.filters a.on { background:var(--accent); color:#fff; border-color:var(--accent); }
.month h2 { border-bottom:2px solid var(--accent); padding-bottom:4px; }
.counter { float:right; font-weight:400; color:var(--muted); }
.check { display:flex; gap:8px; align-items:center; font-weight:400; margin:6px 0; }
.check input { width:auto; }
@media (max-width:700px) { table.list .hide-sm { display:none; } }
