/* Оформление АРМ — фирменный стандарт предприятия, вариант barkone:
   шрифты Onest (интерфейс) и IBM Plex Mono (числа), цвета-токены,
   значки Lucide. Знак и название компании не используются. */
:root {
  --accent: #0d8f9c; --ink: #14181f; --ink2: #3a4150; --muted: #6a7180;
  --faint: #98a0ae; --line: #e6e8ee; --line2: #eef0f4; --surface: #f7f8fb;
  --ok: #15a06a; --warn: #cf850f; --bad: #c93a3a; --tint: #eef6f7;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: #eef0f4; }
body { font-family: 'Onest', sans-serif; font-size: 14px; color: var(--ink); }
a { color: inherit; text-decoration: none; }
.win { max-width: 1180px; margin: 16px auto; border: 1px solid #d5d9e1; border-radius: 10px;
       overflow: hidden; background: #fff; }
.top { display: flex; align-items: center; gap: 10px; padding: 9px 14px;
       background: var(--surface); border-bottom: 1px solid var(--line); }
.logo { width: 28px; height: 28px; border-radius: 7px; display: grid; place-items: center;
        background: linear-gradient(180deg, #1d2733, #14181f); }
.app { font-weight: 700; font-size: 15px; }
.grow { flex: 1; }
.head .grow { min-width: 300px; }
.ver { color: var(--ink2); }
.pill { border-radius: 999px; padding: 2px 10px; font-weight: 600; white-space: nowrap; }
.pill.ok { background: #e3f4ec; color: var(--ok); }
.pill.draft { background: #fbefdc; color: var(--warn); }
.user { display: flex; align-items: center; gap: 5px; color: var(--muted); }
.user a { color: var(--accent); margin-left: 6px; }
.tabs { display: flex; flex-wrap: wrap; padding: 0 8px; border-bottom: 1px solid var(--line); }
.tab { padding: 8px 8px 7px; color: var(--muted); border-bottom: 2px solid transparent; }
.tab:hover { color: var(--ink); }
.tab.on { color: var(--ink); border-color: var(--accent); font-weight: 600; }
.body { padding: 12px 14px 16px; }
.head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
h2 { font-size: 17px; margin: 0 0 3px; }
.meta { color: var(--muted); }
.btn { border-radius: 8px; padding: 6px 11px; font-weight: 600; display: inline-flex;
       align-items: center; gap: 6px; white-space: nowrap; font: inherit; font-weight: 600;
       cursor: pointer; border: 1px solid #cfd4dd; background: #fff; color: var(--ink); }
.btn.pri { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn:disabled { opacity: .5; cursor: default; }
.btns { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
table { border-collapse: collapse; width: 100%; }
th { font-weight: 600; color: var(--muted); text-align: left; padding: 6px 6px;
     border-bottom: 1px solid var(--line); white-space: nowrap; vertical-align: bottom; }
th.wrap { white-space: normal; }
td { padding: 4px 6px; border-bottom: 1px solid var(--line2); }
.num { text-align: right; font-family: 'IBM Plex Mono', monospace; font-weight: 500;
       white-space: nowrap; }
th.num { font-family: 'Onest', sans-serif; font-weight: 600; }
tr.grp td { font-weight: 600; background: var(--surface); padding-top: 4px; padding-bottom: 4px; }
td.ind { padding-left: 18px; color: var(--ink2); }
tr.vybr td { background: #f2f9fa; }
.good { color: var(--ok); } .warn { color: var(--warn); } .bad { color: var(--bad); }
.neutral { color: var(--ink2); }
td.hl { background: #fbefdc; color: var(--warn); }
.foot { display: flex; align-items: center; gap: 14px; margin-top: 10px; color: var(--muted);
        flex-wrap: wrap; }
/* форма ввода */
table.form { table-layout: fixed; }
col.metka { width: 166px; }
table.form td { padding: 1px 1px; }
table.form tr.grp td { padding: 4px 6px; }
table.form td.ind { padding-left: 18px; }
input.in { width: 100%; text-align: right; background: var(--tint); border: 1px solid transparent;
           border-radius: 4px; padding: 1px 3px; font: 500 14px 'IBM Plex Mono', monospace;
           color: var(--ink); }
input.in:focus { outline: none; border-color: var(--accent); background: #fff; }
input.in[readonly] { background: #f1f2f5; color: var(--ink2); }
input.in.err { border-color: var(--bad); background: #fdeeee; }
.oshibki { color: var(--bad); margin-top: 8px; }
.oshibki:empty { display: none; }
select.vybor { font: inherit; padding: 5px 8px; border: 1px solid #cfd4dd; border-radius: 8px;
               background: #fff; color: var(--ink); }
/* модальное окно и сообщения */
.fon { position: fixed; inset: 0; background: rgba(20,24,31,.35); display: none;
       align-items: center; justify-content: center; }
.fon.on { display: flex; }
.okno { background: #fff; border-radius: 10px; padding: 16px; width: 540px; max-width: 94vw; }
.okno h3 { margin: 0 0 10px; font-size: 16px; }
.okno label { display: block; color: var(--muted); margin: 8px 0 3px; }
.okno label.galka { display: flex; gap: 6px; align-items: center; color: var(--ink); margin-top: 10px; }
.okno label.galka[hidden] { display: none; }
.okno label.galka input { width: auto; margin: 0; flex: none; }
td.deystv { text-align: right; line-height: 1.6; }
.okno input { width: 100%; padding: 6px 8px; border: 1px solid #cfd4dd; border-radius: 6px;
              font: inherit; }
.soobsh { position: fixed; right: 18px; bottom: 18px; background: var(--ink); color: #fff;
          padding: 10px 14px; border-radius: 8px; display: none; max-width: 460px; }
.soobsh.on { display: block; }
.soobsh.oshibka { background: var(--bad); }
/* вход */
.vhod { width: 360px; margin: 12vh auto; background: #fff; border: 1px solid #d5d9e1;
        border-radius: 10px; padding: 22px; }
.vhod h1 { font-size: 18px; margin: 10px 0 14px; display: flex; gap: 10px; align-items: center; }
.vhod input { width: 100%; padding: 7px 9px; border: 1px solid #cfd4dd; border-radius: 6px;
              font: inherit; margin: 4px 0 10px; }
.vhod-sso { width: 100%; justify-content: center; gap: 8px; padding: 9px 11px;
            margin: 2px 0 12px; }
.vhod-parol summary { cursor: pointer; margin: 0 0 8px; }
.vhod-osh { margin: 0 0 12px; }
.vhod-info { margin: 0 0 12px; padding: 8px 10px; border-radius: 6px; background: var(--tint); }
.user .metka { display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 999px;
               background: var(--accent); color: #fff; font-size: 11px; text-align: center; }
h3.razdel { font-size: 14px; margin: 14px 0 6px; }
.pr-pochta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 4px 0; }
.user > a:first-of-type { color: inherit; }
.zagruzka { color: var(--muted); }
.zam { color: var(--warn); margin-top: 2px; white-space: normal; }
.okno textarea { width: 100%; padding: 6px 8px; border: 1px solid #cfd4dd; border-radius: 6px; font: inherit; }
/* подсказки вводных */
.pd { text-align: right; font: 500 11px 'IBM Plex Mono', monospace; line-height: 1.25;
      padding: 0 3px 2px; white-space: nowrap; overflow: hidden; }
.pd a.pdz { color: var(--accent); cursor: pointer; border-bottom: 1px dotted var(--accent); }
.pd span { margin-left: 4px; font-size: 10px; }
a.kak { color: var(--accent); cursor: pointer; font-weight: 600; }
.kak-blok { margin-top: 8px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px;
            background: var(--surface); }
.kak-blok td { padding: 3px 8px; border: none; vertical-align: top; }
.foot label { white-space: nowrap; }
/* проверка плана и расчет «что получится» */
.svod { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; flex-wrap: wrap; }
.plashka { border-radius: 8px; padding: 4px 12px; font-weight: 600; }
.plashka.ok { background: #e3f4ec; color: var(--ok); }
.plashka.warn { background: #fbefdc; color: var(--warn); }
.plashka.bad { background: #fbe4e4; color: var(--bad); }
td.ur-ok { color: var(--ok); }
td.ur-warn { background: #fbefdc; color: var(--warn); }
td.ur-bad { background: #fbe4e4; color: var(--bad); font-weight: 600; }
.proba { margin-top: 10px; padding: 8px 12px; border-radius: 8px; background: var(--surface);
         border: 1px solid var(--line); display: flex; gap: 18px; flex-wrap: wrap; }
.proba b { font-family: 'IBM Plex Mono', monospace; font-weight: 600; }
/* узкое окно (до 760 px): плотнее, чтобы восемь месяцев вводных помещались */
@media (max-width: 760px) {
  .ver .pref { display: none; }
  .top { padding: 7px 12px; }
  .tab { padding: 6px 7px 5px; }
  .body { padding: 10px 12px 10px; }
  .head { margin-bottom: 6px; }
  col.metka { width: 148px; }
  table.form td { padding: 0; }
  table.form td.ind { padding-left: 8px; }
  table.form tr.grp td { padding: 2px 6px; }
  input.in { padding: 0 1px; letter-spacing: -0.5px; }
}

/* листы полного плана: широкая таблица с закрепленным первым столбцом */
.win.shir { max-width: 1760px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; align-items: center; }
.chip { padding: 3px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink2);
        white-space: nowrap; }
.chip:hover { border-color: var(--accent); }
.chip.on { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 600; }
.prokrutka { overflow-x: auto; }
table.list { width: auto; min-width: 100%; }
table.list td, table.list th { white-space: nowrap; }
table.list .lip { position: sticky; left: 0; background: #fff; z-index: 1; min-width: 280px; }
table.list tr.grp .lip { background: var(--surface); }
table.list td.ur1 { padding-left: 20px; color: var(--ink2); }
table.list td.ur2 { padding-left: 34px; color: var(--ink2); }
table.list td.zakryt, table.list th.zakryt, .obr.zakryt { background: #f1f2f5; color: var(--ink2); }
table.list td.fakt, table.list th.fakt, .obr.fakt { background: #eef5ff; color: var(--ink2); }
table.par td { padding: 2px 6px; }
td.sch { color: var(--ink2); background: #f7f8fa; text-align: right; padding: 2px 6px !important;
         font: 500 12px 'IBM Plex Mono', monospace; white-space: nowrap; }
table.form.dl { table-layout: auto; width: auto; min-width: 100%; }
table.form.dl input.in { min-width: 76px; }
table.form.dl td.ind, table.form.dl th:first-child { position: sticky; left: 0; background: #fff;
                                                     z-index: 1; min-width: 190px; }
table.form td.zakr input.in { background: #f1f2f5; color: var(--ink2); }
.okno select { width: 100%; padding: 6px 8px; border: 1px solid #cfd4dd; border-radius: 6px; font: inherit; background: #fff; }

/* форма вводных: быстрые действия, подсветка, правки и комментарии */
.instr { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 8px; }
input.in.izm, .obr.izm { background: #fff4d6; }
input.in.ot-utv, .obr.ot-utv { box-shadow: inset 0 -2px 0 #7aa7e8; }
.obr.ot-utv { color: #7aa7e8; }
a.kom-m { font-size: 11px; color: var(--accent); }
details.blok { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 8px; }
details.blok summary { cursor: pointer; font-weight: 600; }
.kom { padding: 6px 0; border-bottom: 1px solid var(--line2); }
.kom-forma { display: flex; gap: 6px; align-items: flex-start; margin-top: 8px; flex-wrap: wrap; }
.kom-forma textarea { flex: 1; min-width: 240px; padding: 6px 8px; border: 1px solid #cfd4dd;
                      border-radius: 6px; font: inherit; }
.kom-forma select { padding: 5px 6px; border: 1px solid #cfd4dd; border-radius: 6px; font: inherit; }
table.pravki { margin-top: 6px; }
table.pravki td { font-size: 12px; }
#vliyanie span { margin-right: 14px; }
.okno-shir { width: 520px; }
table.list th.wrap { white-space: normal; vertical-align: bottom; }
