:root { --bg:#f5f6f8; --fg:#1c2330; --muted:#6b7480; --line:#e2e5ea; --accent:#2f6fed; --warn:#c9420b; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 -apple-system,Segoe UI,Roboto,Arial,sans-serif; background:var(--bg); color:var(--fg); }
body.centered { display:flex; min-height:100vh; align-items:center; justify-content:center; }
a { color:var(--accent); text-decoration:none; }
.topbar { display:flex; gap:20px; align-items:center; padding:12px 24px; background:#fff; border-bottom:1px solid var(--line); }
.topbar .brand { font-weight:700; color:var(--fg); }
.topbar nav { display:flex; gap:16px; flex:1; }
.topbar .logout { color:var(--muted); font-size:13px; }
main { max-width:1080px; margin:0 auto; padding:24px; }
h1 { font-size:22px; margin:0 0 4px; }
.muted { color:var(--muted); }
.cards { display:flex; flex-wrap:wrap; gap:14px; margin:18px 0; }
.card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px 18px; }
.cards .card { min-width:160px; }
.card .num { font-size:26px; font-weight:700; }
.card .lbl { color:var(--muted); font-size:13px; }
.card.warn { border-color:var(--warn); }
.card.warn .num { color:var(--warn); }
button { background:var(--accent); color:#fff; border:0; border-radius:8px; padding:9px 16px; font-size:14px; cursor:pointer; }
form.login { display:flex; flex-direction:column; gap:12px; width:300px; }
form.login h1 { margin:0; }
form.login label { display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--muted); }
form.login input { padding:9px 10px; border:1px solid var(--line); border-radius:8px; font-size:15px; }
.error { background:#fde8e2; color:var(--warn); padding:8px 10px; border-radius:8px; font-size:13px; }

/* --- экран «Деньги» --- */
main { max-width:1240px; }
.subnav { display:flex; gap:6px; align-items:center; flex-wrap:wrap; padding:8px 24px; background:#fff; border-bottom:1px solid var(--line); }
.subnav a { padding:5px 12px; border-radius:7px; color:var(--muted); font-size:14px; }
.subnav a.on { background:var(--accent); color:#fff; }
.subnav a:hover:not(.on) { background:var(--bg); }
.subnav .monthpick { margin-left:auto; }
.subnav select { padding:6px 8px; border:1px solid var(--line); border-radius:7px; font-size:14px; background:#fff; }
.pill { display:inline-block; background:var(--warn); color:#fff; border-radius:20px; padding:0 7px; font-size:12px; }

h2 { font-size:16px; margin:0 0 10px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:18px 0; }
.grid2 > .card { margin:0; }
section.card { margin:18px 0; }
@media (max-width:900px) { .grid2 { grid-template-columns:1fr; } }

.tbl { width:100%; border-collapse:collapse; font-size:14px; }
.tbl th, .tbl td { text-align:left; padding:7px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
.tbl th { color:var(--muted); font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.02em; }
.tbl .r { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.tbl tr:last-child td, .tbl tbody tr:last-child td { border-bottom:0; }
.tbl .hl { background:#eef3ff; }
.tbl .b { font-weight:700; }
.nowrap, .tbl .nowrap { white-space:nowrap; }
.neg { color:var(--warn); }
.pos { color:#1a7f43; }
.mono { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; }
.sample { color:var(--muted); font-size:12px; max-width:340px; }

.dir { font-size:11px; padding:1px 6px; border-radius:6px; }
.dir.in { background:#e3f4ea; color:#1a7f43; }
.dir.out { background:#fde8e2; color:var(--warn); }

.filters { display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; margin:16px 0; background:#fff; border:1px solid var(--line); border-radius:10px; padding:14px 16px; }
.filters label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted); }
.filters label.chk { flex-direction:row; align-items:center; gap:6px; font-size:14px; color:var(--fg); }
.filters select, .filters input { padding:7px 9px; border:1px solid var(--line); border-radius:7px; font-size:14px; }
.filters input[name=q] { min-width:260px; }

.tbl.review td { vertical-align:middle; }
.tbl.review .assign { display:flex; gap:8px; align-items:center; }
.tbl.review select { padding:6px 8px; border:1px solid var(--line); border-radius:7px; font-size:13px; max-width:280px; }
.tbl.review button { padding:6px 12px; font-size:13px; }
.retrain { margin:18px 0; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.ok-box { background:#e3f4ea; color:#1a7f43; padding:12px 14px; border-radius:8px; }

.tbl.ops .warn-row { background:#fff7f4; }
.scroll-x { overflow-x:auto; background:#fff; border:1px solid var(--line); border-radius:10px; }
.tbl.svod { font-size:13px; }
.tbl.svod .sticky { position:sticky; left:0; background:#fff; min-width:230px; }
.tbl.svod tfoot td { border-top:2px solid var(--line); border-bottom:0; background:#fafbfc; }
