*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;font:13.5px/1.35 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#0f172a;background:#f8fafc}
.muted{color:#64748b;font-size:12px}
.warn{color:#b91c1c;font-size:12px;font-weight:600}
.login{min-height:100vh;display:flex;align-items:center;justify-content:center}
.login form{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:28px;width:360px;display:flex;flex-direction:column;gap:10px}
.login h1{margin:0;font-size:20px}
input,select,button{font:inherit}
input,select{border:1px solid #cbd5e1;border-radius:8px;padding:6px 9px;background:#fff}
button{border:0;border-radius:8px;padding:7px 14px;background:#1d4ed8;color:#fff;cursor:pointer}
button.link{background:none;color:#1d4ed8;padding:0}
button:disabled{opacity:.5;cursor:default}
.msg{color:#b91c1c;min-height:1em;margin:0}
header{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:8px 12px;background:#fff;border-bottom:1px solid #e2e8f0;flex-wrap:wrap}
.counts{color:#334155;font-size:12.5px;flex:1}
.filters{display:flex;gap:10px;padding:8px 12px;flex-wrap:wrap;align-items:center}
.filters input{flex:1;min-width:280px}
.legend{color:#475569;font-size:12.5px}
.dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 10px;vertical-align:-1px}
.dot.green{background:#bbf7d0}.dot.red{background:#fecaca}
table.grid{border-collapse:collapse;width:calc(100% - 24px);margin:0 12px 40px;background:#fff;border:1px solid #cbd5e1;table-layout:fixed}
col.c-fio{width:15%}col.c-login{width:8%}col.c-x{width:4.5%}col.c-g{width:14.75%}
th,td{border:1px solid #e2e8f0;padding:3px 7px;text-align:left;vertical-align:top;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
thead th{background:#f1f5f9;font-weight:600;position:sticky;top:0;z-index:1}
thead tr.sub th{top:27px;font-weight:500;color:#475569;font-size:12px}
td.x{text-align:center;border-left:2px solid #cbd5e1}
td.both{background:#f0fdf4}td.xonly,td.gonly{background:#fef2f2}
td.xonly.g,td.gonly.x{background:#fee2e2}
tr.pool td.fio,tr.pool td.lgn{background:#fff7ed}
tr.noglpi td.fio{background:#fff7ed}
.tag{display:inline-block;background:#e2e8f0;border-radius:5px;padding:1px 6px;font-weight:600;font-size:12.5px}
.dev{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dev b{font-weight:600}
thead th{white-space:normal}
