:root{--bg:#f6f7f9;--card:#fff;--text:#1d2530;--muted:#667085;--line:#e1e5ea;--accent:#1f6feb;--accent-ink:#fff}
@media (prefers-color-scheme:dark){:root{--bg:#14181d;--card:#1c2229;--text:#e8ecf1;--muted:#95a0ae;--line:#2c3540;--accent:#4c8dff;--accent-ink:#0b1220}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--line)}
.top nav{display:flex;gap:16px}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
main{padding:16px;max-width:1800px;margin:0 auto}
h1{margin:0 0 12px;font-size:20px}h1 small{color:var(--muted);font-weight:400}
.filters{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.filters .wide{min-width:260px}
.filters .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;flex:1;min-width:280px}
input,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:7px 8px;width:100%}
.actions{display:flex;gap:8px;width:100%}
.btn{display:inline-block;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:6px;padding:7px 14px;font:inherit;cursor:pointer}
.btn.ghost{background:transparent;color:var(--accent)}.btn:hover{text-decoration:none;opacity:.9}
.summary{margin:12px 0;color:var(--muted)}.summary strong{color:var(--text)}
.table-wrap{overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;max-height:70vh}
table{border-collapse:collapse;width:100%;white-space:nowrap}
th,td{padding:6px 10px;border-bottom:1px solid var(--line);text-align:left}
th{position:sticky;top:0;background:var(--card);z-index:1;font-size:12px}
th a{color:var(--muted)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tbody tr:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.code{display:inline-block;font:12px ui-monospace,Menlo,monospace;background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:4px;padding:1px 6px}
td.batch,th.batch{position:sticky;left:0;background:#fff3b0;color:#3d3200;font:600 13px ui-monospace,Menlo,monospace;border-right:1px solid #e6d27a}
th.batch{z-index:3}th.batch a{color:#3d3200}td.batch{z-index:1}
td.kod,th.kod{background:#d6ecff;color:#0a2f55;font:600 13px ui-monospace,Menlo,monospace}
th.kod a{color:#0a2f55}
@media (prefers-color-scheme:dark){td.kod,th.kod{background:#173a5c;color:#d6ecff}th.kod a{color:#d6ecff}td.batch,th.batch{background:#5a4a00;color:#fff3b0;border-right-color:#7a6500}th.batch a{color:#fff3b0}}
.empty{text-align:center;color:var(--muted);padding:24px}
.pager{display:flex;gap:16px;justify-content:center;align-items:center;margin:14px 0;color:var(--muted)}
.login{max-width:320px;margin:15vh auto;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px;display:flex;flex-direction:column;gap:12px}
.error{color:#d92d20;margin:0}
@media (max-width:640px){main{padding:12px}.top{flex-direction:column;align-items:flex-start;gap:6px}}
