/* КапРем Monochrome: белое поле, чернила, волосяные линии, нулевые радиусы.
   Значимость — узором (заливка / штриховка 45° / точки / пунктир); суриковый — только тревога.
   Раскладка: панель → загрузка → срез и KPI → схема по округам → изменения → история → методика. */
:root{
  color-scheme: light;
  --w:#ffffff; --s1:#fafafa; --s2:#f4f4f4; --s3:#ededed;
  --ln:#e4e4e4; --ln2:#d0d0d0; --ln3:#b4b4b4;
  --i:#0a0a0a; --i2:#5c5c5c; --i3:#8f8f8f; --i4:#b8b8b8;
  --alarm:#a81f12;
  --f-body:'Golos Text', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --f-mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Consolas, monospace;
  --hatch: repeating-linear-gradient(45deg, var(--i) 0 1.4px, transparent 1.4px 4px);
  --dots: radial-gradient(circle, var(--i) 0.9px, transparent 1.2px) 0 0 / 4px 4px;
}
*,*::before,*::after{ margin:0; padding:0; box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ font-size:14px; -webkit-font-smoothing:antialiased; background:var(--w); }
body{ background:var(--w); color:var(--i); font-family:var(--f-body); font-variant-numeric:tabular-nums; min-height:100%; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
:focus-visible{ outline:2px solid var(--i); outline-offset:2px; }
.mono{ font-family:var(--f-mono); font-variant-numeric:tabular-nums; }
.lbl{ font-family:var(--f-mono); font-size:9.5px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--i3); }
.vh{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (prefers-reduced-motion: reduce){ *{ animation:none!important; transition:none!important; } }

/* иконки: маска по SVG-контуру */
.mi{ display:inline-block; width:14px; height:14px; background:currentColor; flex-shrink:0;
  -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; }
.mi-up{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='square'%3E%3Cpath d='M12 16V4M6 10l6-6 6 6M4 20h16'/%3E%3C/svg%3E"); }
.mi-down{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='square'%3E%3Cpath d='M12 4v12M6 10l6 6 6-6M4 20h16'/%3E%3C/svg%3E"); }
.mi-copy{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='8' y='8' width='12' height='12'/%3E%3Cpath d='M4 16V4h12'/%3E%3C/svg%3E"); }
.mi-x{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M5 5l14 14M19 5L5 19'/%3E%3C/svg%3E"); }
.mi-trash{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13'/%3E%3C/svg%3E"); }
.mi-file{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M6 3h8l4 4v14H6z'/%3E%3Cpath d='M14 3v4h4M9 12h6M9 16h6'/%3E%3C/svg%3E"); }

/* ── панель ── */
.topbar{ position:sticky; top:0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 28px; min-height:58px; background:var(--w); border-bottom:1px solid var(--ln); flex-wrap:wrap; }
.brand{ display:flex; align-items:baseline; gap:14px; min-width:0; padding:10px 0; flex-wrap:wrap; }
.mark{ font-size:15px; font-weight:800; letter-spacing:-.02em; white-space:nowrap; }
.crumb{ font-family:var(--f-mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--i3); }
.tb-right{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:8px 0; }
.tb-chip{ display:inline-flex; align-items:center; gap:7px; font-size:10.5px; font-weight:600; padding:6px 11px; border:1px solid var(--ln2); white-space:nowrap; color:var(--i2); }
.dot{ width:7px; height:7px; flex-shrink:0; background:var(--i); }
.dot.hollow{ background:none; border:1px solid var(--i3); }
.dot.alarm{ background:var(--alarm); }

.content{ max-width:1680px; margin:0 auto; padding:24px 28px 72px; display:flex; flex-direction:column; gap:30px; }

/* ── кнопки ── */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:9px 16px; font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; border:1px solid var(--i); background:var(--w); color:var(--i); cursor:pointer; transition:background .12s; white-space:nowrap; font-family:var(--f-body); }
.btn:hover{ background:var(--s2); }
.btn.pri{ background:var(--i); color:var(--w); }
.btn.pri:hover{ background:#2e2e2e; }
.btn.gh{ border-color:var(--ln2); color:var(--i2); }
.btn.gh:hover{ border-color:var(--i); color:var(--i); background:var(--w); }
.btn.sm{ padding:7px 12px; font-size:10px; }
.btn[disabled]{ opacity:.35; pointer-events:none; }
.icobtn{ width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--ln2); color:var(--i2); }
.icobtn:hover{ border-color:var(--i); color:var(--i); }

/* ── загрузка ── */
.drop{ border:1px dashed var(--ln3); background:var(--s1); display:flex; align-items:center; gap:18px; padding:16px 20px; flex-wrap:wrap; transition:background .12s, border-color .12s; }
.drop.big{ flex-direction:column; align-items:flex-start; padding:40px 36px; gap:14px; }
.drop.big .drop-t{ font-size:22px; font-weight:800; letter-spacing:-.03em; }
.drop-t{ font-size:13px; font-weight:700; }
.drop-d{ font-size:12px; color:var(--i2); line-height:1.6; max-width:78ch; }
.drop .grow{ flex:1; min-width:240px; }
body.dragging .drop{ background:var(--s2); border-color:var(--i); border-style:solid; }
.drag-veil{ position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; background:rgba(255,255,255,.86); border:2px dashed var(--i); pointer-events:none; }
body.dragging .drag-veil{ display:flex; }
.drag-veil div{ font-size:20px; font-weight:800; letter-spacing:-.02em; }

/* ── заголовок среза ── */
.snap{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; border-bottom:2px solid var(--i); padding-bottom:14px; }
.snap-t{ font-size:26px; font-weight:800; letter-spacing:-.035em; line-height:1.1; text-wrap:balance; }
.snap-m{ font-family:var(--f-mono); font-size:10.5px; color:var(--i2); margin-top:8px; line-height:1.7; letter-spacing:.01em; }
.snap-m b{ color:var(--i); font-weight:600; }
.cmp{ display:flex; flex-direction:column; gap:6px; min-width:240px; }
.cmp select{ appearance:none; -webkit-appearance:none; border:none; border-bottom:1px solid var(--ln2); padding:6px 18px 6px 0; font:600 12.5px var(--f-body); color:var(--i); background:transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='5'><path d='M0 0l4 5 4-5z' fill='%238f8f8f'/></svg>") no-repeat right center; cursor:pointer; }
.cmp select:focus{ border-bottom-color:var(--i); outline:none; }
.st{ display:inline-flex; align-items:center; gap:6px; font-family:var(--f-mono); font-size:9px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:3px 8px; border:1px solid var(--ln2); white-space:nowrap; color:var(--i2); }
.st.inv{ background:var(--i); color:var(--w); border-color:var(--i); }
.st.alarm{ border-color:var(--alarm); color:var(--alarm); }

/* ── KPI ── */
.kpis{ display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:20px; }
.kpi{ border-top:2px solid var(--i); padding-top:12px; min-width:0; }
.kpi.mute{ border-top-color:var(--ln2); }
.kpi-l{ display:flex; align-items:center; gap:7px; }
.kpi-v{ font-size:30px; font-weight:800; letter-spacing:-.045em; line-height:1; margin:10px 0 8px; }
.kpi-v small{ font-size:13px; font-weight:600; letter-spacing:-.01em; color:var(--i2); margin-left:6px; }
.kpi-s{ font-family:var(--f-mono); font-size:10px; color:var(--i3); line-height:1.65; }
.kpi-s b{ color:var(--i); font-weight:600; }
.sw{ display:inline-block; width:10px; height:10px; border:1px solid var(--i); flex-shrink:0; }
.p0{ background:var(--i); } .p1{ background:var(--hatch); } .p2{ background:var(--dots); } .p3{ background:var(--ln3); } .p4{ background:var(--w); } .pq{ background:var(--alarm); }

/* ── распределение ── */
.distr{ display:grid; grid-template-columns:auto 1fr; gap:10px 16px; align-items:center; }
.distr .lbl{ white-space:nowrap; }
.dbar{ display:flex; height:16px; border:1px solid var(--i); background:var(--w); }
.dbar .seg{ height:100%; min-width:0; }
.dbar .seg + .seg{ border-left:1px solid var(--i); }
.dleg{ grid-column:2; display:flex; flex-wrap:wrap; gap:6px 18px; font-size:11px; color:var(--i2); }
.dleg span{ display:inline-flex; align-items:center; gap:7px; }

/* ── блок ── */
.block-h{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; border-bottom:1px solid var(--ln2); padding-bottom:10px; margin-bottom:14px; }
.block-h .lbl{ color:var(--i); }
.tools{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.seg-ctl{ display:inline-flex; border:1px solid var(--ln2); }
.seg-ctl button{ padding:7px 11px; font-family:var(--f-mono); font-size:9.5px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--i2); }
.seg-ctl button + button{ border-left:1px solid var(--ln2); }
.seg-ctl button[aria-pressed="true"]{ background:var(--i); color:var(--w); }
.chk{ display:inline-flex; align-items:center; gap:8px; font-size:11px; color:var(--i2); cursor:pointer; user-select:none; padding:6px 4px; }
.chk input{ appearance:none; -webkit-appearance:none; width:13px; height:13px; border:1px solid var(--i); display:inline-block; position:relative; cursor:pointer; }
.chk input:checked{ background:var(--i); box-shadow:inset 0 0 0 2px var(--w); }

/* ── схема ── */
.sch-wrap{ overflow-x:auto; border:1px solid var(--ln2); background:var(--w); }
table.sch{ border-collapse:separate; border-spacing:0; min-width:100%; }
.sch th,.sch td{ border-right:1px solid var(--ln); border-bottom:1px solid var(--ln); }
.sch thead th{ font-family:var(--f-mono); font-size:9px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--i3); padding:6px 7px; text-align:center; vertical-align:bottom; background:var(--w); white-space:nowrap; }
.sch thead tr.g th{ font-family:var(--f-body); font-size:11.5px; font-weight:700; letter-spacing:-.01em; text-transform:none; color:var(--i); padding:9px 8px; border-bottom:1px solid var(--i); vertical-align:middle; white-space:normal; }
.sch thead tr.s th{ font-family:var(--f-body); font-size:10.5px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--i); line-height:1.25; padding:8px 8px 13px; position:relative; vertical-align:top; white-space:normal; min-width:84px; }
.sch thead tr.s th::after{ content:''; position:absolute; left:7px; right:7px; bottom:4px; height:4px; }
.sch thead tr.s th.k-base::after{ background:var(--s3); }
.sch thead tr.s th.k-dyn::after{ background:var(--hatch); }
.sch thead tr.s th.k-work::after{ background:var(--dots); }
.sch thead tr.s th.k-back::after{ height:0; border-top:1.5px dashed var(--i); bottom:6px; }
.sch thead tr.s th.k-itog::after, .sch thead tr.s th.k-now::after{ background:var(--i); }
.sch thead tr.num th{ font-size:8.5px; color:var(--i4); padding:3px 7px; letter-spacing:.04em; }
.sch th.dist, .sch td.dist{ position:sticky; left:0; z-index:3; background:var(--w); text-align:left; box-shadow:inset -1px 0 0 var(--i); }
.sch thead th.dist{ font-family:var(--f-body); font-size:11.5px; font-weight:700; color:var(--i); text-transform:none; letter-spacing:-.01em; vertical-align:middle; }
.sch td.dist{ font-size:12px; font-weight:600; padding:6px 14px 6px 12px; white-space:nowrap; }
.sch td.dist .ex{ font-family:var(--f-mono); font-size:9px; color:var(--alarm); margin-left:6px; }
.sch td.n{ font-family:var(--f-mono); font-size:11.5px; text-align:right; padding:6px 8px; white-space:nowrap; min-width:52px; }
.sch td.n.on{ cursor:pointer; }
.sch td.n.on:hover{ background:var(--s2); box-shadow:inset 0 0 0 1px var(--i); }
.sch td.n .dl{ display:block; font-size:9.5px; color:var(--i3); margin-top:1px; letter-spacing:-.02em; }
.sch td.n .z{ color:var(--i4); }
.sch .gs{ box-shadow:inset 1px 0 0 var(--i); }
.sch td.itg{ font-weight:700; }
.sch tbody tr:hover td{ background:var(--s1); }
.sch tbody tr:hover td.dist{ background:var(--s1); }
.sch tr.tot td{ font-weight:700; background:var(--s2); border-top:2px solid var(--i); border-bottom:1px solid var(--i); }
.sch tr.tot td.dist{ background:var(--s2); text-transform:uppercase; letter-spacing:.04em; }
.sch tr.sub td{ background:var(--s1); color:var(--i2); font-size:10.5px; }
.sch tr.sub td.dist{ background:var(--s1); font-weight:500; font-size:11px; color:var(--i2); }

.ctl{ margin-top:12px; display:flex; align-items:flex-start; gap:10px; font-size:11.5px; line-height:1.6; color:var(--i2); }
.ctl .mono{ font-size:11px; color:var(--i); }
.ctl.bad{ color:var(--alarm); }
.ctl.bad .mono{ color:var(--alarm); }
.ctl .tick{ width:16px; height:16px; border:1px solid var(--i); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px; }
.ctl .tick::before{ content:''; width:8px; height:8px; background:var(--i); }
.ctl.bad .tick{ border-color:var(--alarm); }
.ctl.bad .tick::before{ background:var(--alarm); }

.note{ padding:12px 15px; font-size:11.5px; line-height:1.65; border-left:2px solid var(--ln2); background:var(--s1); color:var(--i2); }
.note b{ color:var(--i); }
.note.mark{ border-left-color:var(--i); background:var(--s2); color:var(--i); }
.note.alarm{ border-left-color:var(--alarm); color:var(--alarm); background:var(--w); }

/* ── изменения ── */
.chg-grid{ display:grid; grid-template-columns:minmax(260px, 380px) 1fr; gap:24px; align-items:start; }
.mx{ border-collapse:collapse; width:100%; font-family:var(--f-mono); font-size:11px; }
.mx th{ font-size:9px; font-weight:500; color:var(--i3); letter-spacing:.06em; text-transform:uppercase; padding:5px 4px; text-align:center; }
.mx th.rh{ text-align:left; white-space:nowrap; padding-right:8px; }
.mx td{ border:1px solid var(--ln); text-align:center; padding:7px 4px; min-width:34px; }
.mx td.dg{ color:var(--i4); background:var(--s1); }
.mx td.fw{ font-weight:700; color:var(--i); cursor:pointer; }
.mx td.bk{ font-weight:700; color:var(--i); cursor:pointer; outline:1.5px dashed var(--i); outline-offset:-4px; }
.mx td.fw:hover, .mx td.bk:hover, .mx td.sel{ background:var(--i); color:var(--w); outline-color:var(--w); }
.mx td.e{ color:var(--i4); }
.chips{ display:inline-flex; border:1px solid var(--ln); flex-wrap:wrap; }
.chip{ padding:7px 12px; font-family:var(--f-mono); font-size:9.5px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--i2); cursor:pointer; border-right:1px solid var(--ln); }
.chip:last-child{ border-right:none; }
.chip:hover{ background:var(--s2); }
.chip[aria-pressed="true"]{ background:var(--i); color:var(--w); }

.tbl{ width:100%; border-collapse:collapse; }
.tbl th{ font-family:var(--f-mono); font-size:9px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--i3); padding:9px 10px; border-bottom:1px solid var(--ln2); text-align:left; white-space:nowrap; background:var(--w); }
.tbl td{ padding:9px 10px; font-size:11.5px; border-bottom:1px solid var(--ln); vertical-align:top; }
.tbl td.r, .tbl th.r{ text-align:right; }
.tbl td.m{ font-family:var(--f-mono); font-size:11px; white-space:nowrap; }
.tbl tbody tr:hover td{ background:var(--s1); }
.tbl .sub{ font-family:var(--f-mono); font-size:9.5px; color:var(--i3); margin-top:3px; }
.scroll{ overflow:auto; border:1px solid var(--ln); }
.scroll.tall{ max-height:520px; }
.scroll thead th{ position:sticky; top:0; z-index:1; }
.trans{ display:inline-flex; align-items:center; gap:6px; white-space:nowrap; font-family:var(--f-mono); font-size:10.5px; }
.trans .ar{ color:var(--i3); }
.dirf{ font-weight:700; }
.dirb{ border-bottom:1.5px dashed var(--i); }

/* ── история ── */
.hist-grid{ display:grid; grid-template-columns:1fr; gap:18px; }
.chart{ position:relative; border:1px solid var(--ln); padding:12px 12px 6px; background:var(--w); }
.chart svg{ display:block; width:100%; height:auto; overflow:visible; }
.chart text{ font-family:var(--f-mono); font-size:9.5px; fill:var(--i3); }
.chart .lab{ fill:var(--i); font-size:10px; font-weight:600; }
.tip{ position:absolute; pointer-events:none; background:var(--i); color:var(--w); padding:9px 11px; font-family:var(--f-mono); font-size:10.5px; line-height:1.6; z-index:5; white-space:nowrap; display:none; }
.tip b{ font-weight:700; }
.hrow.cur td{ box-shadow:inset 3px 0 0 var(--i); }
.hrow.cur td + td{ box-shadow:none; }
.hrow td{ cursor:pointer; }
.tag{ font-family:var(--f-mono); font-size:8.5px; padding:2px 6px; border:1px solid var(--ln2); color:var(--i2); letter-spacing:.06em; text-transform:uppercase; margin-left:6px; white-space:nowrap; }
.tag.inv{ background:var(--i); color:var(--w); border-color:var(--i); }

/* ── аккордеоны ── */
details.acc{ border-top:1px solid var(--ln); }
details.acc:last-child{ border-bottom:1px solid var(--ln); }
details.acc summary{ list-style:none; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:13px 0; cursor:pointer; }
details.acc summary::-webkit-details-marker{ display:none; }
details.acc summary .lbl{ color:var(--i); }
details.acc summary::after{ content:'+'; font-family:var(--f-mono); font-size:13px; }
details.acc[open] summary::after{ content:'−'; }
.acc-b{ padding:2px 0 20px; }
.rules{ display:grid; grid-template-columns:minmax(150px, 230px) 1fr; border-top:1px solid var(--ln); }
.rules > div{ padding:9px 12px 9px 0; border-bottom:1px solid var(--ln); font-size:12px; line-height:1.6; }
.rules > div:nth-child(odd){ font-weight:600; display:flex; gap:8px; align-items:flex-start; }
.rules code{ font-family:var(--f-mono); font-size:11px; background:var(--s2); padding:1px 4px; }
.checks{ display:flex; flex-direction:column; }
.chk-row{ display:grid; grid-template-columns:18px 1fr; gap:10px; padding:9px 0; border-bottom:1px solid var(--ln); font-size:12px; line-height:1.55; }
.chk-row .ic{ width:14px; height:14px; border:1px solid var(--i); margin-top:2px; }
.chk-row.ok .ic{ background:var(--i); box-shadow:inset 0 0 0 3px var(--w); }
.chk-row.info .ic{ border-style:dashed; }
.chk-row.warn .ic{ border-color:var(--alarm); background:var(--alarm); }
.chk-row.warn .t{ color:var(--alarm); }
.chk-row .d{ font-family:var(--f-mono); font-size:10.5px; color:var(--i2); margin-top:2px; }
.chk-row ul{ margin:6px 0 0 16px; font-family:var(--f-mono); font-size:10.5px; color:var(--i2); }

/* ── модальные ── */
.bd{ display:none; position:fixed; inset:0; background:rgba(10,10,10,.3); z-index:120; align-items:center; justify-content:center; padding:24px; }
.bd.show{ display:flex; }
.modal{ background:var(--w); border:1px solid var(--i); width:640px; max-width:100%; max-height:92vh; display:flex; flex-direction:column; }
.modal.wide{ width:1180px; }
.m-hdr{ display:flex; justify-content:space-between; align-items:flex-start; padding:20px 22px 14px; gap:16px; border-bottom:1px solid var(--ln); }
.m-title{ font-size:16px; font-weight:700; line-height:1.3; letter-spacing:-.02em; }
.m-sub{ font-family:var(--f-mono); font-size:10px; color:var(--i2); margin-top:6px; line-height:1.6; }
.m-body{ padding:16px 22px 22px; overflow:auto; }
.m-foot{ display:flex; gap:8px; justify-content:flex-end; padding:14px 22px; border-top:1px solid var(--ln); flex-wrap:wrap; }

.busy{ position:fixed; inset:0; z-index:300; display:none; align-items:center; justify-content:center; background:rgba(255,255,255,.82); }
.busy.show{ display:flex; }
.busy-box{ border:1px solid var(--i); background:var(--w); padding:18px 22px; display:flex; align-items:center; gap:14px; font-size:12.5px; font-weight:600; }
.spin{ width:14px; height:14px; background:var(--i); animation:spin 1s steps(4) infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }

.toasts{ position:fixed; bottom:22px; right:22px; z-index:320; display:flex; flex-direction:column; gap:1px; max-width:420px; }
.toast{ background:var(--i); color:var(--w); padding:12px 16px; font-size:11.5px; font-weight:500; line-height:1.5; display:flex; gap:11px; }
.toast .b{ width:6px; height:6px; background:var(--w); flex-shrink:0; margin-top:6px; }
.toast.alarm .b{ background:var(--alarm); }

.empty{ border:1px solid var(--ln); padding:28px; color:var(--i3); font-size:12px; line-height:1.7; }
.err{ border:1px solid var(--alarm); padding:16px 18px; color:var(--alarm); font-size:12px; line-height:1.65; }
.err b{ display:block; font-size:13px; margin-bottom:4px; }

@media (max-width:1180px){
  .kpis{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .chg-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  html{ font-size:13.5px; }
  .topbar{ padding:0 16px; }
  .content{ padding:18px 16px 64px; gap:24px; }
  .kpis{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
  .kpi-v{ font-size:24px; }
  .snap-t{ font-size:21px; }
  .drop.big{ padding:26px 20px; }
  .distr{ grid-template-columns:1fr; }
  .dleg{ grid-column:1; }
  .rules{ grid-template-columns:1fr; }
  .rules > div:nth-child(odd){ border-bottom:none; padding-bottom:0; }
  .bd{ padding:0; align-items:flex-end; }
  .modal{ max-height:94vh; border-left:none; border-right:none; border-bottom:none; }
  .hide-sm{ display:none; }
  .toasts{ left:12px; right:12px; bottom:12px; max-width:none; }
}

/* ── сайт КапРем: вход и пользователь ── */
.user-chip{ gap:9px; color:var(--i); }
.user-chip button{ font-family:var(--f-mono); font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--i2); border-left:1px solid var(--ln2); padding-left:9px; }
.user-chip button:hover{ color:var(--i); }
.login{ position:fixed; inset:0; z-index:400; background:var(--w); display:flex; align-items:center; justify-content:center; padding:24px; }
.login-box{ width:380px; max-width:100%; border:1px solid var(--i); padding:30px 28px 26px; display:flex; flex-direction:column; gap:6px; background:var(--w); }
.login-box .mark{ font-size:18px; }
.login-box .crumb{ margin:4px 0 14px; }
.login-box label{ font-family:var(--f-mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--i3); margin-top:10px; }
.login-box input{ border:none; border-bottom:1px solid var(--ln2); border-radius:0; padding:8px 0; font:600 15px var(--f-body); color:var(--i); background:transparent; outline:none; }
.login-box input:focus{ border-bottom-color:var(--i); }
.login-err{ min-height:20px; font-size:11.5px; color:var(--alarm); margin-top:8px; line-height:1.5; }
.login-box .btn{ margin-top:4px; padding:12px 16px; }
.flink{ color:var(--i); text-decoration:underline; text-decoration-color:var(--ln3); text-underline-offset:3px; }
.flink:hover{ text-decoration-color:var(--i); }
