:root{
  --bg:#f4f5f7; --panel:#fff; --line:#e2e5ea; --ink:#16191d; --ink2:#4a5058;
  --muted:#79808a; --accent:#2f5fd0; --good:#12704b; --good-bg:#e6f4ed;
  --warn:#8a5a00; --warn-bg:#fdf2dc; --crit:#a51f1f; --crit-bg:#fbeaea;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:14px/1.5 -apple-system,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
header{background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.hd{max-width:1400px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:22px;height:54px}
.logo{font-weight:700;letter-spacing:-.01em}
nav{display:flex;gap:18px;flex:1}
nav a{color:var(--ink2);padding:4px 0;border-bottom:2px solid transparent}
nav a.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}
.who{color:var(--muted);font-size:13px}
main{max-width:1400px;margin:0 auto;padding:22px 20px 60px}
h1{font-size:21px;margin:0 0 4px}
.sub{color:var(--muted);font-size:13px;margin-bottom:18px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px}
.kpi .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.kpi .v{font-size:26px;font-weight:600;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi.crit .v{color:var(--crit)} .kpi.warn .v{color:var(--warn)} .kpi.good .v{color:var(--good)}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th,td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
th:first-child,td:first-child{text-align:left;white-space:normal}
th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);
  font-weight:600;background:#fafbfc;position:sticky;top:0;z-index:3;
  box-shadow:inset 0 -1px 0 var(--line)}
tbody tr{position:relative;z-index:1}
tbody tr:hover{background:#f8f9fb}
.scroll{background:var(--panel);border:1px solid var(--line);border-radius:8px;
  overflow:auto;max-height:calc(100vh - 210px)}
.tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600}
.t-crit{background:var(--crit-bg);color:var(--crit)}
.t-warn{background:var(--warn-bg);color:var(--warn)}
.t-good{background:var(--good-bg);color:var(--good)}
.btn{display:inline-block;padding:8px 16px;border-radius:6px;border:1px solid var(--line);
  background:var(--panel);color:var(--ink);font-size:14px;cursor:pointer}
.btn:hover{background:#f0f2f5;text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:#2850b5}
.btn.danger{background:var(--crit);border-color:var(--crit);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}
.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
input[type=text],input[type=password]{padding:8px 11px;border:1px solid var(--line);
  border-radius:6px;font-size:14px;background:var(--panel);color:var(--ink)}
.chip{padding:5px 11px;border:1px solid var(--line);border-radius:99px;color:var(--ink2);font-size:13px}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip:hover{text-decoration:none}
.banner{padding:11px 14px;border-radius:7px;margin-bottom:14px;font-size:13px}
.b-dry{background:var(--warn-bg);color:var(--warn);border:1px solid #f0dcb0}
.b-ok{background:var(--good-bg);color:var(--good);border:1px solid #bfe3d2}
.b-err{background:var(--crit-bg);color:var(--crit);border:1px solid #f0c4c4}
.sku{color:var(--muted);font-size:12px}
.det{background:#fafbfc}
.det td{padding:5px 10px;font-size:13px;border-bottom:1px dashed var(--line)}
.neg{color:var(--crit)} .pos{color:var(--good)}
.login{max-width:340px;margin:90px auto}
.login .card{padding:24px}
.login label{display:block;margin:12px 0 5px;font-size:13px;color:var(--ink2)}
.login input{width:100%}
.center{text-align:center}

/* вложенная таблица в раскрытых деталях: без липкой шапки и без своей прокрутки */
.det table{max-height:none}
.det th{position:static}
