:root{--bg:#f4f6f9;--card:#fff;--ink:#1c2733;--mut:#6a7787;--line:#dfe5ec;--acc:#0f5fa8;--acc2:#e8f1fa;--tot:#fff6df;--gtot:#e3efe1;--dan:#b3261e}
@media(prefers-color-scheme:dark){:root{--bg:#12171d;--card:#1a2129;--ink:#e6ebf0;--mut:#93a0ae;--line:#2b3540;--acc:#5aa9ec;--acc2:#1f2f40;--tot:#3a3320;--gtot:#22331f;--dan:#f2867f}}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
header{background:var(--card);border-bottom:1px solid var(--line);padding:12px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
header h1{font-size:18px;margin:0;flex:1}header a{color:var(--acc);text-decoration:none;font-weight:600}
main{max-width:1500px;margin:0 auto;padding:20px 16px}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 24px}
.btn,button{font:inherit;font-weight:600;background:var(--acc);color:#fff;border:0;border-radius:8px;padding:10px 20px;cursor:pointer;text-decoration:none;display:inline-block}
.btn.big{padding:16px 32px;font-size:17px}.btn.sec,button.sec{background:var(--acc2);color:var(--acc)}button.dan{background:var(--dan)}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:20px}
h2{font-size:16px;margin:0 0 12px}
.wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;max-height:75vh}
table{border-collapse:separate;border-spacing:0;width:100%;font-variant-numeric:tabular-nums}
th,td{padding:7px 10px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap;text-align:right;background:var(--card)}
th{position:sticky;top:0;background:var(--acc2);color:var(--ink);z-index:2;white-space:normal;text-align:center;font-size:13px}
td.l,th.l{text-align:left}td.c{text-align:center}
tr.tot td{background:var(--tot);font-weight:700}tr.gtot td{background:var(--gtot);font-weight:700}
.stick{position:sticky;left:0;z-index:1}th.stick{z-index:3}
a.rowlink{color:var(--acc);font-weight:700;text-decoration:none}a.rowlink:hover{text-decoration:underline}
.mut{color:var(--mut)}.neg{color:var(--dan)}
input,select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 8px}
td input{width:150px;text-align:right}td input.w{width:190px;text-align:left}td input.s{width:60px;text-align:left}td input.d{width:135px}
td.calc{background:var(--acc2);color:var(--mut)}
.login{max-width:360px;margin:12vh auto}.login label{display:block;margin:12px 0 4px;font-weight:600}.login input{width:100%}
.msg{margin-top:10px;font-weight:600}.err{color:var(--dan)}.ok{color:#2e7d32}
.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
