
:root{ --bg:#0b0f14; --fg:#e6edf3; --muted:#93a4b8; --card:#111825; --line:#1f2a3a; --warn:#3a2a12; --ok:#10351d; --err:#3a1212; }
*{ box-sizing:border-box; }
body{ margin:0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial; background:var(--bg); color:var(--fg); }
.wrap{ max-width: 1400px; margin: 0 auto; padding: 16px; }
h1{ margin: 0 0 8px 0; font-size: 22px; }
.muted{ color: var(--muted); font-size: 13px; }
.card{ background: var(--card); border:1px solid var(--line); border-radius: 12px; padding: 12px; margin: 12px 0; }
.label{ display:block; margin-bottom:6px; color: var(--muted); }
.input, .select, .ta{ width:100%; padding: 10px; border-radius: 10px; border:1px solid var(--line); background:#0f1622; color: var(--fg); }
.ta{ min-height: 120px; resize: vertical; }
.ta.small{ min-height: 80px; }
.btn{ padding: 10px 12px; border-radius: 10px; border:1px solid var(--line); background:#0f1622; color: var(--fg); cursor:pointer; }
.btn.primary{ background:#15325c; border-color:#1f3f74; }
.topbar{ display:flex; gap:12px; align-items:flex-start; justify-content: space-between; flex-wrap: wrap; }
.actions{ display:flex; gap:10px; }
.banner{ padding: 12px; border-radius: 12px; border:1px solid var(--line); }
.banner.warn{ background: var(--warn); }
.filters{ display:flex; gap: 16px; align-items:center; flex-wrap: wrap; }
.table-card{ overflow:auto; padding:0; }
.tbl{ border-collapse: collapse; width: 1800px; }
.tbl th, .tbl td{ border-bottom:1px solid var(--line); padding: 8px; vertical-align: top; font-size: 13px; }
.tbl th{ position: sticky; top:0; background:#0f1622; z-index: 2; }
.sticky{ position: sticky; left:0; background:#0f1622; z-index: 1; }
.tbl td.sticky:nth-child(1), .tbl th.sticky:nth-child(1){ left:0; }
.tbl td.sticky:nth-child(2), .tbl th.sticky:nth-child(2){ left:48px; }
.tbl td.sticky:nth-child(3), .tbl th.sticky:nth-child(3){ left:110px; }
.fio{ min-width: 220px; font-weight: 600; }
.badge{ display:inline-block; padding: 2px 8px; border-radius: 999px; border:1px solid var(--line); font-size: 12px; }
.badge.gray{ color: var(--muted); }
.badge.green{ background: var(--ok); }
.badge.amber{ background: #3a3212; }
.hint{ color: var(--muted); font-size: 11px; margin-top: 6px; }
tr.amb td{ outline: 1px solid #6b4b14; }
.ok{ background: var(--ok); padding: 6px; border-radius: 10px; }
.err{ background: var(--err); padding: 6px; border-radius: 10px; }
code{ color: #b7d5ff; }
