/* Вэлидлайн — одна система оформления всех экранов (макет от 25.09.2026, docs/dizayn/vl.css).
   Цвет = смысл и всегда вместе со значком и словом: синий — следующий шаг; светло-синий — программа работает;
   янтарный — ваш ход (проверить или решить); зелёный — готово, сходится; красный — ошибка, работа остановлена;
   фиолетовый — опция поставщика; белая метка с рамкой и развилкой — вариант; серый — не войдёт, недоступно, архив.
   На экране одна синяя кнопка — следующий шаг. Все ресурсы локальные: шрифт, логотип и значки — свои файлы. */

/* Шрифт Golos Text — переменный 400–900, лицензия SIL OFL 1.1 (shrift/OFL.txt). */
@font-face{font-family:"Golos Text";font-style:normal;font-display:swap;font-weight:400 900;src:url(shrift/golos-text-cyrillic-ext-wght-normal.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:"Golos Text";font-style:normal;font-display:swap;font-weight:400 900;src:url(shrift/golos-text-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Golos Text";font-style:normal;font-display:swap;font-weight:400 900;src:url(shrift/golos-text-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Golos Text";font-style:normal;font-display:swap;font-weight:400 900;src:url(shrift/golos-text-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --brand:#02628d; --brand-600:#014c6e; --brand-50:#e8f2f8; --brand-100:#cde2ee;
  --graphite:#3d4750;
  --text:#1b2630; --muted:#55636e; --faint:#687580;
  --bg:#f2f4f6; --surface:#ffffff; --line:#dde3e8; --line-2:#c5cfd6; --soft:#f7f9fa;
  --attn:#c26a06; --attn-ink:#7a3d00; --attn-bg:#fff3df; --attn-line:#f0c47f; --attn-row:#fffaf0;
  --ok:#1d7a46; --ok-ink:#145a33; --ok-bg:#e5f4eb; --ok-line:#a7d9ba;
  --err:#c0362c; --err-ink:#96231c; --err-bg:#fdebe9; --err-line:#f1b7b1;
  --opt:#6443c9; --opt-ink:#4f31ad; --opt-bg:#efeafd; --opt-line:#cfc3f5;
  --off:#5d6973; --off-bg:#eceff2;
  --r-sm:6px; --r:10px; --r-lg:14px;
  --shadow:0 1px 2px rgba(16,32,48,.05),0 6px 20px rgba(16,32,48,.06);
  --shadow-up:0 -4px 24px rgba(16,32,48,.10);
  --shapka:64px;
}

/* ——— Основа ——— */
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--shapka) + 16px)}
body{margin:0;font-family:"Golos Text",system-ui,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);font-size:15px;line-height:1.45;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
h1{font-size:26px;line-height:1.2;margin:0;font-weight:700;letter-spacing:-.01em}
h2{font-size:18px;line-height:1.3;margin:0;font-weight:650}
h3{font-size:15px;line-height:1.35;margin:0;font-weight:650}
h4{font-size:14px;margin:0;font-weight:650;color:var(--graphite)}
p{margin:0}
a{color:var(--brand);text-underline-offset:3px}
a:hover{color:var(--brand-600)}
svg{flex:none}
[hidden]{display:none!important}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;margin:0}
ul,ol{margin:0;padding-left:20px}
small{font-size:13px}
button,input,select,textarea{font:inherit;color:inherit}
/* Фокус с клавиатуры виден у всего нажимаемого — обводка фирменным синим. */
:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:4px}
.sw:focus-visible,.btn:focus-visible,button:focus-visible{outline-offset:3px}

/* Значки: тонкая линия, цвет от текста. */
.i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block}
.i.s{width:14px;height:14px;stroke-width:2.4}
.i.m{width:16px;height:16px}
.i.l{width:22px;height:22px}
.i.xl{width:30px;height:30px;stroke-width:1.8}
.vrashchaetsya{animation:vrashchenie 1.1s linear infinite}
@keyframes vrashchenie{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.vrashchaetsya{animation:none}}

/* ——— Шапка ——— */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:32px;height:var(--shapka);padding:0 40px;background:var(--surface);border-bottom:1px solid var(--line);flex:none}
.logo{display:flex;align-items:center;gap:14px;text-decoration:none}
.logo img{height:34px;width:auto;display:block}
.logo span{font-size:13px;color:var(--muted);border-left:1px solid var(--line);padding-left:14px;line-height:1.25}
.nav{display:flex;gap:4px;flex:1}
.nav a{padding:8px 14px;border-radius:8px;color:var(--muted);text-decoration:none;font-weight:500}
.nav a:hover{color:var(--brand)}
.nav a.on{background:var(--brand-50);color:var(--brand);font-weight:600}
.user{display:flex;align-items:center;gap:10px;color:var(--graphite);font-size:14px;font-weight:500}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-50);color:var(--brand);display:grid;place-items:center;font-weight:650;font-size:13px}
.vyhod{margin:0;display:flex}
.icon-btn{width:40px;height:40px;min-height:0;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;padding:0}
.icon-btn:hover{background:var(--soft);color:var(--brand)}
.icon-btn.line{border-color:var(--line-2);background:var(--surface)}
.polosa-vverhu{height:6px;background:var(--brand);flex:none}

main{flex:1 0 auto;width:100%}
.page{padding:24px 48px 32px;display:flex;flex-direction:column;gap:20px;max-width:1800px;margin:0 auto}
.stroka-zagolovka{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.stroka-zagolovka>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.dve-kolonki{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:20px;align-items:start}
.kolonka{display:flex;flex-direction:column;gap:16px;min-width:0}
.po-tsentru{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;flex:1;padding:40px 16px}

/* ——— Заголовок Предложения и шаги ——— */
.back{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--brand);text-decoration:none;font-weight:500}
.kp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.kp-head>.deystviya-zagolovka{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kp-title{display:flex;align-items:center;gap:14px;margin-top:6px}
.kp-title .v{color:var(--muted);font-weight:600}
.meta{display:flex;gap:18px;align-items:center;color:var(--muted);font-size:14px;margin-top:8px;flex-wrap:wrap}
.meta span{display:inline-flex;align-items:center;gap:6px}
.meta b{color:var(--text);font-weight:600}
.steps{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 22px;box-shadow:var(--shadow)}
.step{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);min-width:0;flex:none}
.step+.step::before{content:"";flex:1;height:2px;background:var(--line);margin:0 16px 0 -12px;border-radius:2px;min-width:24px;align-self:center}
.step{flex:1 1 0}
.step:first-child{flex:none}
.step.posle-gotovogo::before{background:var(--ok-line)}
.step .ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:650;font-size:15px;flex:none;background:var(--brand-50);color:var(--brand)}
.step .nazv{display:flex;flex-direction:column;min-width:0}
.step b{display:block;font-size:15px;font-weight:600;line-height:1.2}
.step small{display:block;font-size:13px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.step:hover b{color:var(--brand)}
.step.done .ic{background:var(--ok-bg);color:var(--ok)}
.step.cur .ic{background:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--brand-50)}
.step.cur b{color:var(--brand)}
.step.done.cur .ic{background:var(--ok-bg);color:var(--ok);box-shadow:0 0 0 4px var(--ok-line)}
.step.done.cur b{color:var(--ok-ink)}
.step.attn small{color:var(--attn-ink);font-weight:600}
.step.work .ic{background:var(--brand-50);color:var(--brand)}
.step.work small{color:var(--brand);font-weight:600}
.step.err .ic{background:var(--err-bg);color:var(--err)}
.step.err small{color:var(--err-ink);font-weight:600}
.step.lock{color:var(--faint)}
.step.lock .ic{background:var(--off-bg);color:var(--faint)}
.step.lock b{color:var(--faint);font-weight:550}

/* ——— Кнопки ——— */
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--text);font:inherit;font-weight:500;white-space:nowrap;text-decoration:none;cursor:pointer;line-height:1.2}
button:hover,.btn:hover{border-color:var(--brand);color:var(--brand)}
.btn.primary,button.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.btn.primary:hover,button.primary:hover{background:var(--brand-600);border-color:var(--brand-600);color:#fff}
.btn.soft,button.soft{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand);font-weight:600}
.btn.soft:hover,button.soft:hover{background:var(--brand-100)}
.btn.lg,button.lg{min-height:48px;padding:0 22px;font-size:16px;border-radius:10px}
.btn.sm,button.sm{min-height:34px;padding:0 12px;font-size:14px}
.btn.ghost,button.ghost{border-color:transparent;background:transparent;color:var(--brand);padding:0 8px}
.btn.ghost:hover,button.ghost:hover{background:var(--brand-50)}
.btn.dis,button.dis,button:disabled,.btn[aria-disabled=true]{background:#e3e7ea;border-color:#e3e7ea;color:#5d6973;cursor:not-allowed}
.btn.shirokaya{width:100%}
/* Тихая ссылка-кнопка внутри текста (было «tihaya»). */
.tihaya,.tihaya-ssylka{display:inline;min-height:0;padding:0;border:0;background:transparent;color:var(--brand);font-size:inherit;font-weight:500;text-decoration:underline;text-underline-offset:3px;cursor:pointer;white-space:normal}
.tihaya:hover,.tihaya-ssylka:hover{background:transparent;color:var(--brand-600)}
.tihaya-ssylka{font-size:13px;margin-left:6px;white-space:nowrap}
.knopki{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.knopki form{margin:0;display:inline-flex}
form.v-stroku,.v-stroku{display:inline-flex;align-items:center;gap:8px;margin:0}

/* ——— Метки состояния: цвет + значок + слово ——— */
.pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;font-size:13px;font-weight:550;white-space:nowrap;line-height:1;background:var(--off-bg);color:var(--off)}
.pill.attn{background:var(--attn-bg);color:var(--attn-ink)}
.pill.ok{background:var(--ok-bg);color:var(--ok-ink)}
.pill.err{background:var(--err-bg);color:var(--err-ink)}
.pill.work{background:var(--brand-50);color:var(--brand)}
.pill.opt{background:var(--opt-bg);color:var(--opt-ink)}
.pill.alt{background:var(--surface);color:var(--graphite);border:1px solid var(--line-2)}
.pill.off{background:var(--off-bg);color:var(--off)}
.pill.lg{height:32px;padding:0 13px;font-size:14px}
.pill.perenos{white-space:normal;height:auto;min-height:26px;padding:4px 10px;line-height:1.25}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.dot.attn{background:var(--attn)}.dot.ok{background:var(--ok)}.dot.err{background:var(--err)}.dot.work{background:var(--brand)}.dot.off{background:#9aa6af}.dot.opt{background:var(--opt)}
.tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--attn-bg);color:var(--attn-ink);font-size:13px;font-weight:650}
.count.ok{background:var(--ok-bg);color:var(--ok-ink)}
.count.off{background:var(--off-bg);color:var(--off)}

/* ——— Карточки ——— */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.card-h>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.card-h .podzagolovok{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.card-b{padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.card>.tbl:last-child tr:last-child td{border-bottom:0}
.divider{height:1px;background:var(--line)}
.proza{display:flex;flex-direction:column;gap:8px}

/* ——— Что осталось, замечания ——— */
.todo{display:flex;align-items:center;gap:14px;padding:14px 20px;border-top:1px solid var(--line)}
.todo.first,.todo:first-child{border-top:0}
.todo.verkh{align-items:flex-start}
.ic{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none}
.ic.attn{background:var(--attn-bg);color:var(--attn)}
.ic.ok{background:var(--ok-bg);color:var(--ok)}
.ic.info{background:var(--off-bg);color:var(--off)}
.ic.work{background:var(--brand-50);color:var(--brand)}
.ic.err{background:var(--err-bg);color:var(--err)}
.ic.opt{background:var(--opt-bg);color:var(--opt)}
.todo .t{flex:1;min-width:0}
.todo .t b{font-weight:600;display:block}
.todo .t small,.todo .t .podpis{display:block;color:var(--muted);font-size:13px;margin-top:1px}
.todo.done .t b{color:var(--muted);font-weight:500}
.todo .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.todo .t .acts{margin-top:10px}
.todo form{margin:0;display:inline-flex}
.meter{height:6px;border-radius:6px;background:var(--line);overflow:hidden;width:120px}
.meter i{display:block;height:100%;background:var(--ok);border-radius:6px}
.quote{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:14px;color:var(--graphite);white-space:pre-wrap;overflow-wrap:anywhere}
.quote mark,mark.mesto{background:#ffdf9e;color:var(--attn-ink);border-radius:3px;padding:0 3px;font-weight:650}
.quote ins{text-decoration:none;background:#cdeed8;color:var(--ok-ink);border-radius:3px;padding:0 3px;font-weight:650}

/* ——— Фильтры и поиск ——— */
.chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);color:var(--text);font:inherit;font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;cursor:pointer}
.chip em{font-style:normal;font-weight:650;color:var(--muted)}
.chip.on,.chip[aria-pressed=true],.chip[aria-current]{background:var(--graphite);border-color:var(--graphite);color:#fff}
.chip.on em,.chip[aria-pressed=true] em,.chip[aria-current] em{color:#fff}
.search{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--faint);min-width:280px;margin:0}
.search input{min-height:0!important;border:0!important;outline:0;font:inherit;color:var(--text);background:transparent;flex:1;min-width:0;height:38px;padding:0!important;margin:0!important;box-shadow:none!important}
.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50)}

/* ——— Таблицы ——— */
table{width:100%;border-collapse:separate;border-spacing:0}
.tbl{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface)}
.tbl.fix{table-layout:fixed}
.tbl th{font-size:13px;font-weight:600;color:var(--muted);text-align:left;padding:10px 14px;background:#f6f8f9;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:bottom}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.tbl.mid td{vertical-align:middle}
.tbl tr:last-child td,.tbl tr.last td{border-bottom:0}
.tbl .num,.chislo{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.tbl .no{white-space:nowrap;font-weight:600;color:var(--graphite)}
.tbl .name{font-weight:600}
.tbl .desc{font-size:13px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tbl .sup{font-size:12.5px;color:var(--faint);margin-top:3px}
.tbl tr.off td{background:#fafbfc}
.tbl tr.off .name,.tbl tr.off .num,.tbl tr.off .no{color:var(--faint);font-weight:500}
.tbl tr.flag td{background:var(--attn-row)}
.tbl .sub{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;font-weight:400}
.tbl a.name{color:var(--text);text-decoration:none}
.tbl a.name:hover,.tbl a.name:focus-visible{color:var(--brand);text-decoration:underline}
.tbl td form{margin:0}
.tbl th.num{text-align:right}
.prokrutka{overflow-x:auto;max-width:100%}
/* Переключатель «войдёт» */
.sw{display:inline-flex;align-items:center;width:42px;height:24px;min-height:24px;border-radius:24px;background:#b9c4cc;padding:3px;border:0;cursor:pointer;flex:none;justify-content:flex-start}
.sw:hover{background:#a6b3bc}
.sw i,.sw span{width:18px;height:18px;border-radius:50%;background:#fff;display:block;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.sw.on,.sw[aria-checked=true]{background:var(--brand);justify-content:flex-end}
.sw[aria-disabled=true]{cursor:default;opacity:.7}

/* ——— Нижняя панель: итог и следующий шаг ——— */
.dock{position:sticky;bottom:12px;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-up);flex-wrap:wrap}
.dock .sum{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.dock .sum span{color:var(--muted);font-size:14px;display:block}
.dock .sum b{font-size:16px;color:var(--text);display:block}
.dock .sum .big{font-size:22px;font-weight:700}
.dock .go{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.dock form{margin:0}
.why{font-size:13.5px;color:var(--attn-ink);display:inline-flex;align-items:center;gap:6px;font-weight:550}

/* ——— Плитки, поля ——— */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;min-width:0}
.tile span{font-size:13px;color:var(--muted);font-weight:550}
.tile b{font-size:24px;font-weight:700;letter-spacing:-.01em}
.tile small{font-size:13px;color:var(--muted)}
.tile.ok{border:2px solid var(--ok)}
.tile.pusto b{color:var(--faint)}
form{margin:0}
.field{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0}
.field label,.field>span:first-child,.lab{font-size:13.5px;font-weight:600;color:var(--graphite)}
.field .hint,.podskazka,.hint{font-size:13px;color:var(--muted);font-weight:400}
.polya{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.polya.tri{grid-template-columns:repeat(3,minmax(0,1fr))}
.polya.odna{grid-template-columns:minmax(0,760px)}
.polya .vsya{grid-column:1/-1}
label{font-weight:500}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=submit]),select,textarea,.input{min-height:42px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);padding:0 12px;font:inherit;font-size:15px;color:var(--text);width:100%;min-width:0;display:block}
textarea,textarea.input{height:auto;padding:10px 12px;line-height:1.5;resize:vertical;min-height:84px}
select{padding-right:32px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-100)}
.input.big,input.krupnoe{min-height:54px;font-size:24px;font-weight:700;border:2px solid var(--brand)}
.input.ro,input[readonly]{background:var(--soft)}
input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--brand);margin:0;flex:none}
input[type=file]{font-size:14px}
.check{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:500}
.check.verkh{align-items:flex-start}
.check.verkh input{margin-top:2px}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:8px;overflow:hidden;background:var(--surface)}
.seg label{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-left:1px solid var(--line-2);font-size:14px;color:var(--muted);cursor:pointer;margin:0;font-weight:500}
.seg label:first-child{border-left:0}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg label:has(input:checked){background:var(--brand-50);color:var(--brand);font-weight:650}
.seg label:has(input:focus-visible){outline:3px solid var(--brand);outline-offset:-3px}
.saved{display:inline-flex;align-items:center;gap:6px;color:var(--ok-ink);font-size:13.5px;font-weight:600}
.saved.work{color:var(--brand)}
.saved.err{color:var(--err-ink)}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{font-size:13.5px;font-weight:600;color:var(--graphite);padding:0;margin-bottom:8px}
details>summary{cursor:pointer;color:var(--brand);font-weight:600;list-style-position:inside}
details>summary:hover{color:var(--brand-600)}
.oshibka-polya,.field .oshibka{color:var(--err-ink);font-size:13.5px;font-weight:550}

/* ——— Полосы-сообщения и всплывающие сообщения ——— */
.banner{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:var(--r-lg);border:1px solid;flex-wrap:wrap}
/* Текст полосы идёт строкой (ссылка внутри — в той же строке); колонка — только у «заголовок + пояснение» (div.t). */
.banner>.t{flex:1;min-width:0}
.banner>div.t{display:flex;flex-direction:column;gap:2px}
.banner b{font-weight:650}
.banner form{margin:0}
.banner.ok{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line)}
.banner.work{background:var(--brand-50);color:var(--brand-600);border-color:var(--brand-100)}
.banner.attn{background:var(--attn-bg);color:var(--attn-ink);border-color:var(--attn-line)}
.banner.err{background:var(--err-bg);color:var(--err-ink);border-color:var(--err-line)}
.banner.info{background:var(--soft);color:var(--graphite);border-color:var(--line)}
/* Строки-сообщения внутри текста экрана: отказ действия, предупреждение, успех (классы читает interfeys.js). */
.oshibka{color:var(--err-ink)}
p.oshibka,div.oshibka{padding:10px 14px;background:var(--err-bg);border:1px solid var(--err-line);border-radius:10px;color:var(--err-ink);font-weight:500}
.preduprezhdenie{padding:10px 14px;background:var(--attn-bg);border:1px solid var(--attn-line);border-radius:10px;color:var(--attn-ink)}
.uspeh{padding:10px 14px;background:var(--ok-bg);border:1px solid var(--ok-line);border-radius:10px;color:var(--ok-ink)}
.obnovlyaetsya{color:var(--brand)}
.soobshcheniya{position:fixed;top:calc(var(--shapka) + 12px);right:24px;z-index:40;display:flex;flex-direction:column;gap:10px;align-items:flex-end;pointer-events:none}
.soobshcheniya>*{pointer-events:auto}
.toast{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;background:var(--surface);border:1px solid var(--err-line);box-shadow:0 10px 30px rgba(16,32,48,.16);width:420px;max-width:calc(100vw - 48px)}
.toast .ic{width:30px;height:30px}
.toast .t{flex:1;min-width:0}
.toast b{display:block;font-weight:650}
.toast small,.toast p{display:block;color:var(--muted);font-size:13.5px;margin-top:2px}
.toast .icon-btn{width:30px;height:30px;margin:-4px -6px 0 0}
.sohranenie{display:flex;gap:10px;align-items:center;padding:12px 16px;border-radius:12px;background:var(--graphite);color:#fff;box-shadow:0 10px 30px rgba(16,32,48,.16);max-width:420px;font-weight:500}
.sohranenie:empty{display:none}

/* ——— Итоги разбора, прогресс, условия ——— */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.stat{display:flex;gap:12px;align-items:center;padding:16px;border-radius:var(--r);background:var(--soft);border:1px solid var(--line);min-width:0}
.stat .ic{width:42px;height:42px;border-radius:11px}
.stat b{display:block;font-size:20px;font-weight:700;line-height:1.2}
.stat small{display:block;font-size:13px;color:var(--muted)}
.progress{height:12px;border-radius:12px;background:var(--brand-50);overflow:hidden}
.progress i{display:block;height:100%;background:var(--brand);border-radius:12px}
.parts{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.parts i{height:8px;border-radius:4px;background:var(--brand-50);display:block}
.parts i.d{background:var(--brand)}
.parts i.w{background:#7fb3d0}
.terms{display:flex;flex-direction:column;gap:0;margin:0}
.kv{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px 14px;font-size:14px;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.kv dd.bez-podpisi{grid-column:1 / -1}
.usloviya-kratko dd{white-space:pre-line}

/* ——— Загрузка файла, файлы, Версии ——— */
.drop{border:2px dashed #9cc3d9;border-radius:var(--r-lg);background:#f5fafd;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:48px}
.drop.nad{border-color:var(--brand);background:var(--brand-50)}
.drop .big-ic{width:72px;height:72px;border-radius:50%;background:var(--brand-50);color:var(--brand);display:grid;place-items:center}
.types{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.type{height:26px;padding:0 10px;border-radius:6px;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;letter-spacing:.02em;background:var(--off-bg);color:var(--graphite)}
.files{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.file{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow);min-width:0}
.file .verh{display:flex;gap:12px;align-items:flex-start}
.ft{width:44px;height:52px;border-radius:8px;display:grid;place-items:center;font-size:12px;font-weight:700;letter-spacing:.02em;color:#fff;flex:none}
.ft.pdf{background:#b8322a}.ft.doc{background:#2b5fb4}.ft.xls{background:#1d7a46}.ft.net{background:var(--off-bg);color:var(--off);border:1px dashed var(--line-2)}
.file b{font-size:16px}
.file small{color:var(--muted);font-size:13px;display:block}
.file .fname{font-size:13px;color:var(--graphite);background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file .acts{display:flex;gap:8px;margin-top:auto;flex-wrap:wrap}
.file .acts form{margin:0}
.file.main{border:2px solid var(--brand)}
.file.net{border-style:dashed;box-shadow:none;background:var(--soft)}
.vers{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ver{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);font-size:14px;color:var(--text);text-decoration:none}
.ver.on{border:2px solid var(--brand);color:var(--brand);font-weight:650}

/* ——— Выбор плитками (поставщик, категория) ——— */
.sup-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sup-tile{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:0 14px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);font-weight:600;color:var(--text);cursor:pointer;margin:0}
.sup-tile input{position:absolute;opacity:0;width:1px;height:1px}
.sup-tile .galka{display:none;color:var(--brand)}
.sup-tile:has(input:checked){border:2px solid var(--brand);background:var(--brand-50);color:var(--brand);padding:0 13px}
.sup-tile:has(input:checked) .galka{display:block}
.sup-tile:has(input:focus-visible){outline:3px solid var(--brand);outline-offset:2px}
.sup-tile.krupno{min-height:84px;justify-content:flex-start;gap:14px;padding:0 18px}
.sup-tile.krupno:has(input:checked){padding:0 17px}
.sup-tile.krupno .galka{margin-left:auto}

/* ——— Предпросмотр: полоса, лист, переход по замечаниям ——— */
.navbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);flex-wrap:wrap;position:sticky;top:calc(var(--shapka) + 8px);z-index:12}
.navbar .chips{gap:6px}
.kbd{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 6px;border-radius:5px;border:1px solid var(--line-2);border-bottom-width:2px;background:var(--surface);font-size:12px;font-weight:600;color:var(--graphite)}
.sheet-wrap{background:#e4e8eb;border-radius:var(--r-lg);padding:28px;display:flex;justify-content:center;min-width:0}

/* ——— Мелочи ——— */
.muted{color:var(--muted)}
.small{font-size:13px}
.link{color:var(--brand);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:6px;font-size:14px}
.link:hover{text-decoration:underline}
.kicker{font-size:12.5px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.tekst{white-space:pre-wrap;overflow-wrap:anywhere}
.odna-stroka{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menyu{position:relative;display:inline-flex}
.menyu-stroki{display:flex;flex-direction:column;gap:4px;align-items:stretch;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:220px}
.menyu-stroki form{margin:0;display:flex}
.menyu-stroki a,.menyu-stroki button{display:flex;justify-content:flex-start;width:100%;min-height:36px;padding:0 10px;border:0;background:transparent;border-radius:6px;color:var(--text);font-size:14px;text-decoration:none}
.menyu-stroki a:hover,.menyu-stroki button:hover{background:var(--brand-50);color:var(--brand)}

/* ——— Экран шире 1366: как в макете; уже 1366 — правая колонка уходит под левую. ——— */
@media (max-width:1365px){
  .page{padding:20px 24px 28px}
  .top{padding:0 24px;gap:20px}
  .dve-kolonki{grid-template-columns:minmax(0,1fr)}
  .tiles,.files,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sup-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1366px) and (max-width:1500px){
  .page{padding:20px 28px 28px}
  .top{padding:0 28px;gap:24px}
  .dve-kolonki{grid-template-columns:minmax(0,1fr) 400px}
}

/* ——— Отдельная карточка по центру: вход, смена пароля, страницы ошибок ——— */
.karta-po-tsentru{max-width:640px;margin:40px auto 0;width:100%}
.karta-vkhoda{width:440px;max-width:100%;padding:40px;display:flex;flex-direction:column;gap:22px}
.karta-vkhoda>img{height:56px;width:auto;align-self:flex-start}
.karta-vkhoda h1{font-size:24px}
.h-men{font-size:22px}
.parol{position:relative}
.parol input{padding-right:48px}
.parol .icon-btn{position:absolute;right:1px;top:1px}
.sprayt{position:absolute;width:0;height:0;overflow:hidden}
.skryto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.step.dostupen .ic{background:var(--brand-50);color:var(--brand)}

/* ——— Реестр ——— */
.reestr .kol-nomer{width:190px}.reestr .kol-klient{width:21%}.reestr .kol-postavshchik{width:15%}
.reestr .kol-izmeneno{width:120px}.reestr .kol-deystviya{width:220px}
.reestr strong{font-weight:650}
.reestr td .pill{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.deystviya-stroki{position:relative;display:flex;gap:6px;justify-content:flex-end;align-items:center}
.deystviya-stroki .menyu{position:absolute;right:0;top:calc(100% + 4px);z-index:5}
progress.polosa-raboty{display:block;width:180px;max-width:100%;height:6px;margin-top:6px;border:0;border-radius:6px;background:var(--brand-50);overflow:hidden;appearance:none}
progress.polosa-raboty::-webkit-progress-bar{background:var(--brand-50);border-radius:6px}
progress.polosa-raboty::-webkit-progress-value{background:var(--brand);border-radius:6px}
progress.polosa-raboty::-moz-progress-bar{background:var(--brand);border-radius:6px}
.pusto{display:flex;flex-direction:column;gap:4px;padding:18px 4px}

/* ——— Новое Предложение ——— */
.s-otstupom{margin-top:8px}
.novoe{grid-template-columns:minmax(0,1fr) 380px}
.forma-novogo{padding:28px;display:flex;flex-direction:column;gap:26px}
.forma-novogo fieldset{display:flex;flex-direction:column;gap:10px}
.forma-novogo legend{margin-bottom:10px}
.normalnyy{font-weight:400}
.dalshe{padding:24px;display:flex;flex-direction:column;gap:18px}
.dalshe .punkt{display:flex;gap:14px;align-items:flex-start}
.dalshe .punkt .ic{width:36px;height:36px}
@media (max-width:1365px){.novoe{grid-template-columns:minmax(0,1fr)}}

/* ——— Карточка Предложения: документ, работа программы, готовые документы, Версии ——— */
.zagolovok-shaga{display:flex;align-items:center;gap:14px}
.zagolovok-shaga h2{font-size:22px}
.ic-36{width:36px;height:36px}.ic-44{width:44px;height:44px}
.ic-56{width:56px;height:56px;border-radius:16px}
.ic.belyy{background:var(--surface)}
.fishka-fayla{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft);min-width:0;max-width:100%}
.fishka-fayla .ft{width:34px;height:40px;font-size:11px}
.fishka-fayla b{font-size:14px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-b.shirokiy{padding:24px;gap:26px}
.deystvie-shaga{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.shirina-300{max-width:300px}
.tekushchiy-shag.rabota{width:760px;max-width:100%;margin:12px auto;padding:40px 44px;display:flex;flex-direction:column;gap:22px}
.rabota-verkh{display:flex;align-items:center;gap:16px}
.rabota-verkh h2{font-size:24px}
.rabota-verkh .obrabotka{color:var(--muted);margin-top:2px}
.protsent{margin-left:auto;font-size:34px;font-weight:700;color:var(--brand)}
.rabota-niz{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
progress.progress-bolshoy{display:block;width:100%;height:12px;border:0;border-radius:12px;background:var(--brand-50);overflow:hidden;appearance:none}
progress.progress-bolshoy::-webkit-progress-bar{background:var(--brand-50);border-radius:12px}
progress.progress-bolshoy::-webkit-progress-value{background:var(--brand);border-radius:12px}
progress.progress-bolshoy::-moz-progress-bar{background:var(--brand);border-radius:12px}
.parts{grid-template-columns:repeat(min(var(--chastey,10),40),minmax(0,1fr))}
.h-banner{font-size:16px;font-weight:650}
.banner .t>span{font-weight:400}
.drop h2{font-size:22px}
.skrytyy-fayl{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.vybor-fayla{position:relative}
.vybor-fayla:has(input:focus-visible){outline:3px solid var(--brand);outline-offset:3px}
.vybrannyy-fayl{display:flex;align-items:center;gap:10px;font-size:16px}
.vybrannyy-fayl .ft{width:34px;height:40px;font-size:11px}
.type.xls{background:var(--ok-bg);color:var(--ok-ink)}.type.doc{background:#e6eefb;color:#1f4f9c}.type.pdf{background:var(--err-bg);color:var(--err-ink)}
.file .verh{justify-content:space-between;align-items:center}
.dlya-klienta{color:var(--brand)}
.versii .card-b{gap:16px}
.forma-versii{display:flex;flex-direction:column;gap:12px}
.pole-nomera{max-width:520px}
details.podrobnosti>summary{padding:16px 20px;font-size:16px}
details.podrobnosti[open]>summary{border-bottom:1px solid var(--line)}
details.podrobnosti h3{margin-top:6px}
.otchet-razbora th{width:60%;white-space:normal;background:transparent;font-size:14px;color:var(--text);font-weight:400;vertical-align:top}
.otchet-razbora{border:1px solid var(--line);border-radius:10px}
.usloviya-postavshchika{display:flex;flex-direction:column;gap:6px}
.usloviya-postavshchika li{white-space:pre-wrap}
.neraspoznannye{font-size:14px;color:var(--muted)}
.svedeniya{display:grid;grid-template-columns:210px minmax(0,1fr);gap:9px 20px;margin:0}
.svedeniya dt{color:var(--muted)}
.svedeniya dd{margin:0;overflow-wrap:anywhere}
.svedeniya dd small{display:block;color:var(--muted)}
.oformlenie{display:flex;flex-direction:column;gap:14px}
.raskhod{margin-top:4px}

/* ——— Предпросмотр: лист документа (как в Word), выделения, правая колонка ——— */
.predprosmotr-ekran{grid-template-columns:minmax(0,1fr) 400px}
body.panel-otkryta .predprosmotr-ekran{grid-template-columns:minmax(0,1fr)}
body.panel-otkryta .pravka-stolbets{display:none}
main.s-predprosmotrom{--panel-shirina:min(640px,42vw);transition:padding .15s}
body.panel-otkryta main.s-predprosmotrom{max-width:none;padding-right:calc(var(--panel-shirina) + 24px)}
main.s-predprosmotrom .panel-pozitsii{width:var(--panel-shirina)}
main.s-predprosmotrom .panel-pozitsii.razvernuta{width:100vw}
.perekhod-zamechaniy{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sheet-wrap{flex-direction:column;align-items:center;gap:22px}
.list-dokumenta{width:794px;max-width:100%;background:#fff;box-shadow:0 2px 10px rgba(16,32,48,.12);padding:48px 56px;font:13px/1.45 Arial,Helvetica,sans-serif;color:#1f1f1f;overflow-wrap:anywhere}
.list-dokumenta .kolontitul{color:#667;font-size:12px;border-bottom:1px solid #d5dadf;padding-bottom:6px;margin:0 0 16px}
.list-dokumenta p{margin:0 0 9px}
.list-dokumenta .abzats-blanka{white-space:pre-line}
.list-dokumenta table{border:0;border-radius:0;table-layout:auto;font-size:inherit;background:transparent;margin:0 0 14px}
.list-dokumenta .titul td{border:0;padding:2px 10px 2px 0;vertical-align:top;width:50%}
.list-dokumenta .titul tr:first-child td:last-child{font-weight:700;font-size:15px}
.list-dokumenta .rekvizity{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#556;margin:0 0 6px}
.list-dokumenta .rekvizity span{white-space:pre-line}
.list-dokumenta .kolonki-kolontitula{display:grid;grid-template-columns:44px 1fr 70px 120px 120px;gap:8px;font-weight:700;font-size:12px;border-bottom:1px solid #333;padding-bottom:4px;margin-bottom:10px}
.list-dokumenta .kolonki-kolontitula span:nth-child(n+3){text-align:right}
.list-dokumenta a.pole-svedeniy{color:inherit;text-decoration:underline dotted #7cc4e6;text-underline-offset:3px}
.list-dokumenta a.pole-svedeniy:hover{background:#dff1fb}
.tablitsa-dokumenta{width:100%;border:1px solid #333!important;border-collapse:collapse;table-layout:fixed;font-size:12px}
.tablitsa-dokumenta th,.tablitsa-dokumenta td{border:1px solid #333;padding:4px 5px;vertical-align:middle;overflow-wrap:anywhere}
.tablitsa-dokumenta th{background:#efefef;color:#111;font-size:11px;text-align:center;letter-spacing:0;font-weight:700;white-space:normal}
.tablitsa-dokumenta .kol-nomer{width:5%}.tablitsa-dokumenta .kol-artikul{width:15%}.tablitsa-dokumenta .kol-ishodnoe{width:23%}
.tablitsa-dokumenta .kol-ru{width:25%}.tablitsa-dokumenta .kol-kolichestvo{width:8%}.tablitsa-dokumenta .kol-edinitsa{width:6%}
.tablitsa-dokumenta .kol-raschyotnaya_tsena,.tablitsa-dokumenta .kol-summa_stroki{width:9%}
.tablitsa-dokumenta tr.mashina td{font-weight:700}
.tablitsa-dokumenta tr.pozitsiya:hover td,.blok-pozitsii.pozitsiya:hover{background:#f4f9f8}
.tablitsa-dokumenta tr.vybrana td,.blok-pozitsii.vybrana{background:var(--brand-50)!important}
.tablitsa-dokumenta tr.isklyuchena td{background:#f3f4f6;color:#7b868d}
.tablitsa-dokumenta tr.isklyuchena .pole,.blok-pozitsii.isklyuchena .pole{text-decoration:line-through}
.tablitsa-dokumenta tr.svyortka td{background:#f3f4f6;color:#7b868d;font-size:11px;padding:3px 6px}
.tablitsa-dokumenta tr.svyortka button,.svyortka-blokov button{min-height:0;padding:0 4px;font-size:11px;border:0;background:transparent;color:var(--brand);text-decoration:underline}
.svyortka-blokov{color:#7b868d;font-size:12px;margin:4px 0 8px}
[data-panel]{cursor:pointer}
.nomer-ssylka{color:inherit;text-decoration:none;display:block;text-align:center}
.nomer-ssylka:hover{text-decoration:underline}
.pole{white-space:pre-line}
.prichina{display:block;color:#7b868d;font-size:11px;text-decoration:none;margin-top:2px}
.khvost{display:block;font-size:11px;margin-top:2px}
.seryy{color:#7b868d;text-decoration:line-through}
.zam,mark.zam{background:#ffdf9e;color:#3a2600;text-decoration:none;border-bottom:2px solid #e39a1c;cursor:pointer;padding:0 1px;border-radius:2px}
.zam:hover{background:#ffd06a}
.zam.podtverzhdeno{background:#fff3c4;border-bottom-style:dashed}
.zam.dlya-svedeniya{background:#fff6dc;border-bottom:1px dotted #e39a1c}
.seryy-zam{background:#e9ecef;color:#556;text-decoration:line-through;border-bottom:2px dotted #99a}
.goluboy{background:var(--brand-50);border-bottom:2px solid #7cb6d6}
p.goluboy{display:inline-block;padding:0 3px}
.zam.tekushchiy,.seryy-zam.tekushchiy{outline:3px solid #e39a1c;outline-offset:2px}
a.zam:focus-visible{outline:3px solid #e39a1c}
.kol-ru>a.zam,.zagolovok-pozitsii>a.zam{font-size:11px;padding:1px 6px;border-radius:4px;margin-left:6px;border-bottom:0;white-space:nowrap}
#predprosmotr .zam,#predprosmotr .seryy-zam,#predprosmotr .goluboy,#predprosmotr .isklyuchena,#predprosmotr .seryy{scroll-margin-top:170px}
.kolonki-blokov{display:grid;grid-template-columns:44px 1fr 70px 120px 120px;gap:8px;font-weight:700;font-size:12px;border-bottom:1px solid #333;padding-bottom:4px;margin-bottom:10px}
.kolonki-blokov span:nth-child(n+3){text-align:right}
.mashina-bloka{font-weight:700;margin:14px 0 6px}
.blok-pozitsii{padding:6px 6px 8px;margin:0 -6px 10px;border-radius:4px}
.zagolovok-pozitsii{display:grid;grid-template-columns:44px 1fr;gap:8px;font-weight:700;margin:0 0 2px}
.stroka-tseny{display:grid;grid-template-columns:1fr 120px 120px;gap:8px;margin:0 0 6px 52px}
.stroka-tseny .chislo{white-space:nowrap}
.foto-dokumenta{display:block;max-width:230px;max-height:170px;margin:18px 0 18px 52px;object-fit:contain}
/* Задача 6, Н5: у опции «Опция» — первой в строке цены, как в документе. */
.stroka-tseny.s-optsiey{grid-template-columns:auto 1fr 120px 120px}
.opisanie-pozitsii{margin:0 0 3px 52px;font-size:12.5px}
.opisanie-pozitsii.uroven-1{margin-left:72px}.opisanie-pozitsii.uroven-2{margin-left:92px}
.opisanie-pozitsii.zagolovok{font-weight:700;margin-top:6px}
.kharakteristiki-dokumenta{margin:4px 0 8px 52px!important;font-size:12px;width:calc(100% - 52px)}
.kharakteristiki-dokumenta td{border:1px solid #d9d9d9;padding:3px 6px}
.kharakteristiki-dokumenta tr:first-child td{font-weight:700}
.itogi-dokumenta{margin:16px 0 0 auto!important;width:auto!important;min-width:320px}
.itogi-dokumenta td{border:0;padding:3px 10px}
.itogi-dokumenta td:first-child{text-align:left}
.itogi-dokumenta td.chislo{font-weight:700}
.upakovka-deystvie{display:block;margin-top:2px}
.upakovka-deystvie button{display:inline;min-height:0;padding:0;border:0;background:transparent;color:var(--brand);font-size:11px;text-decoration:underline}
.forma-sborki{display:flex;flex-direction:column;gap:18px}
.pered-vypuskom{display:flex;flex-direction:column;gap:18px}
.pered-vypuskom .quote{white-space:normal}
.tsentr{text-align:center}
.why{align-items:flex-start}
@media (max-width:1365px){.list-dokumenta{padding:32px 28px}}

/* ——— Состав: позиции, замечания, дела, нижняя панель ——— */
.pozitsii-karta .chips{padding:14px 20px;border-bottom:1px solid var(--line)}
.poisk-sostava{min-width:220px}
.schetchik-sostava{margin-left:auto}
.sostav-tablitsa .kol-voydet{width:70px}.sostav-tablitsa .kol-no{width:66px}.sostav-tablitsa .kol-kolvo{width:92px}
.sostav-tablitsa .kol-tsena{width:132px;white-space:normal}.sostav-tablitsa .kol-metki{width:180px}
.sostav-tablitsa td .ed{color:var(--muted)}
.sostav-tablitsa tr.vybrana>td{background:var(--brand-50)}
.sostav-tablitsa .variant{display:flex;flex-direction:column;gap:2px}
.sostav-tablitsa .variant small{font-size:12px;color:var(--muted)}
.sostav-tablitsa td .tihaya{font-size:13px}
.dobavit-pozitsiyu{border-top:1px solid var(--line)}
.dobavit-pozitsiyu>summary{padding:14px 20px}
.dobavit-pozitsiyu[open]>summary{border-bottom:1px solid var(--line)}
.dobavit-pozitsiyu>form,.dobavit-pozitsiyu>.stroka-postavshchika{padding:16px 20px}
.stroka-postavshchika{overflow-wrap:anywhere}
.stroka-postavshchika mark{background:#ffdf9e;border-radius:3px;padding:0 3px}
/* Замечание: янтарный значок слева, текст с выделенным местом и кнопки решения. */
article.nakhodka-tseny{position:relative;display:flex;flex-direction:column;gap:10px;padding:16px 20px 16px 66px;border-top:1px solid var(--line)}
article.nakhodka-tseny::before{content:"!";position:absolute;left:20px;top:15px;width:32px;height:32px;border-radius:50%;background:var(--attn-bg);color:var(--attn);display:grid;place-items:center;font-weight:800;font-size:16px}
article.nakhodka-tseny.reshena::before{content:"✓";background:var(--ok-bg);color:var(--ok)}
article.nakhodka-tseny.kratko::before{content:"i";background:var(--off-bg);color:var(--off)}
article.nakhodka-tseny p{overflow-wrap:anywhere}
article.nakhodka-tseny mark{background:#ffdf9e;color:var(--attn-ink);border-radius:3px;padding:0 3px;font-weight:600}
article.nakhodka-tseny ul.mesta{display:flex;flex-direction:column;gap:4px}
.card-b>article.nakhodka-tseny:first-of-type,.card>article.nakhodka-tseny:first-of-type{border-top:0}
.deystviya-zamechaniya{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.deystviya-zamechaniya form{margin:0}
/* Задача 6: карточка — одно место; строки — виды найденного: заголовок, место, выдержка до двух строк, фраза, кнопки. */
.stroka-zam{display:flex;flex-direction:column;gap:6px;min-width:0}
.stroka-zam+.stroka-zam{border-top:1px dashed var(--line);padding-top:12px;margin-top:4px}
.stroka-zam .zag-zam{font-weight:650;font-size:15px}
.stroka-zam .gde-zam{display:block;color:var(--muted);font-size:13px;margin-top:-4px;overflow-wrap:anywhere}
.stroka-zam .fraza-zam,.stroka-zam .sut-zam{margin:0;overflow-wrap:anywhere}
.stroka-zam.reshena .zag-zam{color:var(--muted);font-weight:500}
.vyderzhka{background:var(--soft);border-left:3px solid var(--attn);border-radius:0 6px 6px 0;padding:6px 10px;font-size:14px;overflow-wrap:anywhere}
.vyderzhka .kratko{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
details.vyderzhka>summary{list-style:none;cursor:pointer;color:var(--text);font-weight:400}
details.vyderzhka>summary::-webkit-details-marker{display:none}
details.vyderzhka>summary .polnostyu-ssylka{color:var(--brand);font-size:13px;font-weight:600;white-space:nowrap}
details.vyderzhka[open]>summary .kratko{display:none}
details.vyderzhka[open]>summary .polnostyu-ssylka::after{content:" — свернуть"}
.vyderzhka .podpis-mesta{color:var(--muted);font-size:13px}
article.nakhodka-tseny.kratko .vyderzhka{border-left-color:var(--line)}
article.nakhodka-tseny.kratko mark{background:var(--off-bg);color:var(--text)}
details.dlya-svedeniya>summary{display:flex;align-items:center;gap:12px;color:var(--muted);font-weight:400}
details.dlya-svedeniya>summary>span:last-child{flex:1;min-width:0}
details.dlya-svedeniya>summary .ic{width:28px;height:28px}
.spisok-svedeniy{margin:0;padding:0 20px 12px 60px;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted);overflow-wrap:anywhere}
.spisok-svedeniy b{font-weight:600;color:var(--text)}
.spisok-svedeniy mark{background:var(--off-bg);color:var(--text);border-radius:3px;padding:0 3px}
.spisok-svedeniy .vyderzhka-li{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:2px}
details.dlya-svedeniya>p{padding:0 20px 12px 60px}
.naydeno-vne{margin:0}
details.svyornuto-niz{border-top:1px solid var(--line)}
details.svyornuto-niz>summary{padding:14px 20px;font-weight:600}
details.svyornuto-niz>p{padding:0 20px 10px}
details.svyornuto-niz>table{margin:0}
.dela-podskazka{padding:0 20px 14px}
article.todo.nul{border-top:1px solid var(--line)}
.uspeh-t{color:var(--ok-ink)}
.itog-i-foto .todo:first-child{border-top:0}
.foto-sostava .card-b{gap:10px}
.izobrazheniya{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.izobrazheniya figure{margin:0;padding:14px;background:var(--soft);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;gap:10px}
.izobrazheniya figure img{width:100%;height:160px;object-fit:contain;background:#fff;border-radius:6px}
.izobrazheniya figcaption{font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.izobrazheniya figure form{display:flex;flex-direction:column;gap:8px}
article.tekst-vne{display:flex;flex-direction:column;gap:8px;padding:14px 0;border-top:1px solid var(--line)}
article.tekst-vne form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
article.tekst-vne .field{flex:1 1 320px}
.dock .summa-postavshchika small{display:block;margin-top:2px}
@media (max-width:1365px){.sostav-tablitsa .kol-metki{width:150px}}
/* Задача 6, К4: метки в колонке «Метки» переносятся по словам и не выходят за таблицу на 1280. */
.sostav-tablitsa .tags .pill{white-space:normal;height:auto;min-height:26px;padding:4px 10px;line-height:1.25}
/* Задача 6, К1: служебные строки в узкой колонке — три колонки, слова не рвутся по буквам. */
.tablitsa-ne-pozitsiy{table-layout:fixed}
.tablitsa-ne-pozitsiy th,.tablitsa-ne-pozitsiy td{padding-left:10px;padding-right:10px;overflow-wrap:break-word}
.tablitsa-ne-pozitsiy th{white-space:normal}
.tablitsa-ne-pozitsiy .sub{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.tablitsa-ne-pozitsiy .kol-summa{width:118px}
.tablitsa-ne-pozitsiy .kol-vernut{width:128px}
.tablitsa-ne-pozitsiy .tihaya{font-size:13px;white-space:nowrap}
/* Задача 6, Н1: в открытой строке Цен «Сохранить» и «Отмена» переносятся в колонке «Сумма», а не выходят за край. */
.tseny-tablitsa td.deystviya-stroki-tsen{white-space:normal}
/* Задача 6, К2, К5, «Кол-во»: Предпросмотр с открытой панелью — шаги без подписей, номера и «Кол-во» не рвутся. */
body.panel-otkryta main.s-predprosmotrom .steps{padding:10px 16px}
body.panel-otkryta main.s-predprosmotrom .step{gap:8px}
body.panel-otkryta main.s-predprosmotrom .step+.step{flex:1 1 auto}
body.panel-otkryta main.s-predprosmotrom .step small{display:none}
body.panel-otkryta main.s-predprosmotrom .step .ic{width:28px;height:28px;font-size:13px}
body.panel-otkryta main.s-predprosmotrom .step+.step::before{min-width:10px;margin:0 2px 0 6px}
body.panel-otkryta main.s-predprosmotrom .list-dokumenta{padding:32px 28px}
body.panel-otkryta .tablitsa-dokumenta .kol-nomer{width:6%;padding-left:2px;padding-right:2px}
body.panel-otkryta .tablitsa-dokumenta .kol-kolichestvo{width:9%}

/* ——— Боковая панель: правка позиции (В7) и Калькулятор (В8). Справа поверх затемнённого экрана; сама панель
   прокручивается (скрипт помнит её прокрутку), шапка и нижние кнопки прилипают. На Предпросмотре — без затемнения. ——— */
.panel-fon{position:fixed;inset:0;background:rgba(16,28,38,.46);z-index:29}
main.s-predprosmotrom .panel-fon{display:none}
.panel-pozitsii{position:fixed;top:0;right:0;bottom:0;width:min(920px,100vw);background:var(--surface);box-shadow:-12px 0 40px rgba(16,32,48,.22);z-index:30;overflow:auto;display:flex;flex-direction:column}
.panel-pozitsii:focus{outline:none}
.panel-pozitsii.razvernuta{width:100vw}
.panel-kalkulyator{width:min(640px,100vw)}
.panel-shapka{position:sticky;top:0;z-index:2;background:var(--surface);padding:22px 32px 16px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.panel-verkh{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.panel-verkh h2{font-size:22px;line-height:1.3;overflow-wrap:anywhere}
.knopki-paneli{display:flex;gap:6px;align-items:center;flex:none}
.panel-pozitsii [data-svernut-panel]{display:none}
.panel-pozitsii.razvernuta [data-svernut-panel]{display:inline-flex}
.panel-pozitsii.razvernuta [data-razvernut-panel]{display:none}
.meta.spravka{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0;color:var(--muted);font-size:14px}
.panel-shapka .uspeh.saved{padding:0;background:none;border:0}
.panel-telo{flex:1 0 auto;padding:20px 32px 24px;display:flex;flex-direction:column;gap:20px}
.panel-telo form{display:flex;flex-direction:column;gap:18px}
.panel-telo h3{font-size:15px}
.panel-telo h4{font-size:13px;color:var(--muted);margin:12px 0 4px}
.panel-pozitsii textarea{resize:vertical;overflow:hidden;field-sizing:content;min-height:calc(3 * 1.5em + 20px)}
.panel-pozitsii textarea[name=khvost],.panel-pozitsii textarea[name^=blok_]{min-height:calc(8 * 1.5em + 20px)}
/* Место замечания: программа выделяет его в поле при открытии панели — выделение заметное, янтарное. */
.panel-pozitsii textarea::selection,.panel-pozitsii input::selection{background:#ffdf9e;color:#3a2600}
.ryadom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.ishodnik-ryadom .tekst,.svedeniya-paneli .tekst,.panel-pozitsii .ishodnik .tekst{background:#f7f9fa;border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.55;color:#3d4750;max-height:420px;overflow:auto}
main.s-predprosmotrom .panel-pozitsii:not(.razvernuta) .ryadom{grid-template-columns:minmax(0,1fr)}
.svedeniya-paneli{display:flex;flex-direction:column;gap:16px}
.zagolovok-polya{display:flex;justify-content:space-between;align-items:center;gap:12px}
.tablitsa-opisaniya{font-size:14px;margin-bottom:8px}
.tablitsa-opisaniya td{padding:6px;vertical-align:top}
.tablitsa-opisaniya textarea{min-height:48px;padding:6px 8px;font-size:14px}
.stroki-naimenovaniya{font-size:13px;table-layout:auto}
.stroki-naimenovaniya td{white-space:pre-wrap;vertical-align:top}
.stroki-naimenovaniya td:last-child{white-space:nowrap;width:1%}
.panel-pozitsii .dobavit-opisanie{border:1px solid var(--line);border-radius:var(--r);padding:12px 16px}
.panel-pozitsii details.ishodnik>summary,.panel-pozitsii details.povtor-perevoda>summary{padding:4px 0}
.panel-pozitsii details.povtor-perevoda form{margin-top:12px}
.panel-pozitsii fieldset{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:var(--r);padding:10px 14px}
.panel-pozitsii .variant{display:flex;gap:8px;align-items:flex-start;font-size:14px}
.panel-pozitsii .variant input{margin-top:3px}
.foto-paneli{display:flex;flex-direction:column;gap:10px}
.foto-ryad{display:flex;flex-wrap:wrap;gap:14px}
.foto-kartochka{margin:0;display:flex;flex-direction:column;gap:6px;width:170px}
.foto-kartochka img{width:170px;height:112px;object-fit:contain;background:#e9eef2;border:1px solid var(--line);border-radius:8px}
.foto-kartochka.ne-pechataetsya img{opacity:.6}
.foto-kartochka figcaption{font-size:12.5px}
/* Замечания позиции в панели — янтарными полосами. */
.zamechaniya-paneli{display:flex;flex-direction:column;gap:10px}
.panel-pozitsii article.nakhodka-tseny{background:var(--attn-bg);border:1px solid var(--attn-line);border-radius:10px;padding:12px 16px 12px 58px}
.panel-pozitsii article.nakhodka-tseny::before{left:14px;top:11px;background:var(--surface)}
.panel-pozitsii article.nakhodka-tseny.reshena{background:var(--surface);border-color:var(--line)}
.panel-pozitsii article.todo.nul{background:var(--attn-bg);border:1px solid var(--attn-line);border-radius:10px}
.panel-podval{position:sticky;bottom:0;z-index:2;background:var(--surface);border-top:1px solid var(--line);padding:14px 32px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.panel-podval .knopki-sokhraneniya{margin-left:auto;display:flex;gap:10px;flex-direction:row-reverse}
.panel-podval .zapomnit-podskazka{flex:1 1 200px;text-align:right}
.panel-kalkulyator .panel-podval{justify-content:flex-end}
.setka-kalk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
.itog-kalk{padding:12px 16px;background:var(--brand-50);border-radius:10px;font-size:15px}
.itog-kalk strong{font-size:20px}
@media (max-width:1365px){.panel-podval .zapomnit-podskazka{text-align:left}.ryadom{grid-template-columns:minmax(0,1fr)}}

/* ——— Цены (В8): статус сохранения, плитки, параметры, таблица, нижняя панель ——— */
.v-ryad{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.attn-t{color:var(--attn-ink)}
.input.uzkoe,input.uzkoe{width:110px}
.parametry-rascheta{display:grid;grid-template-columns:1.25fr 1fr 1.25fr 1fr;gap:24px;align-items:start}

.pole-koefficienta.pusto .input.big{border-color:var(--attn)}
.stroka-svodki{border-top:1px solid var(--line)}
.stroka-svodki>summary.todo{border-top:0;list-style:none;color:var(--text);font-weight:400}
.stroka-svodki>summary.todo::-webkit-details-marker{display:none}
.stroka-svodki>summary.todo:hover{background:var(--soft)}
.stroka-svodki[open]>summary .btn{visibility:hidden}
.stroka-svodki>.setka-poley{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 20px;padding:4px 20px 12px}
#sroki>.setka-poley{grid-template-columns:repeat(3,minmax(0,1fr))}
.stroka-svodki>.hint{padding:0 20px 14px}
.tseny-tablitsa .kol-no{width:70px}.tseny-tablitsa .kol-kolvo{width:96px}.tseny-tablitsa .kol-tsena{width:160px}.tseny-tablitsa .kol-poshlina{width:118px}
.tseny-tablitsa td small{display:block;color:var(--muted);font-size:12.5px;white-space:normal}
.tseny-tablitsa td .name{display:block}
.tseny-tablitsa td.num .btn.ghost{margin-right:-8px}
.tseny-tablitsa td.num .tihaya{font-size:12.5px;padding:0;min-height:0;border:0;background:none;color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.tseny-tablitsa tr.stroka-pravki>td{background:var(--brand-50);vertical-align:top}
.tseny-tablitsa tr.stroka-pravki .input{width:100%;min-height:36px;text-align:right}
.deystviya-stroki-tsen .btn,.deystviya-stroki-tsen button{margin:2px 0 2px 6px}
.dock .sum .vsego b{color:var(--text)}
@media (max-width:1365px){.parametry-rascheta{grid-template-columns:repeat(2,minmax(0,1fr))}.stroka-svodki>.setka-poley{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ——— Остальные экраны (В11): Настройки, Шаблон, Профили, Справочники, Единицы, Журнал ——— */
.setka-poley{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px}
.setka-poley.odna-kolonka{grid-template-columns:minmax(0,760px)}
.nastroyki-forma .dock{justify-content:space-between}
.bez-perenosa{white-space:nowrap;word-break:normal;overflow-wrap:normal}
.uchetnye td{vertical-align:middle}
.uchetnye .deystviya-stroki{justify-content:flex-end;gap:4px}
button.opasno,.btn.opasno{color:var(--err-ink)}
button.opasno:hover,.btn.opasno:hover{background:var(--err-bg)}
.shablon-ekran{grid-template-columns:minmax(0,1fr) 420px}
.shablon-ekran .artefakty{margin:4px 0 8px}
.profil>summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.spravochniki-ekran{grid-template-columns:minmax(0,1fr) 380px}
.opisanie-spravochnika{display:flex;flex-direction:column;gap:4px}
.poisk-spravochnika{flex-wrap:wrap;justify-content:flex-start}
.poisk-spravochnika .search{flex:1 1 320px}
.poisk-spravochnika select{min-width:200px}
.spisok-podskazka{padding:12px 20px 0}
#spisok .banner,#spisok-edinits .banner,#zhurnal .banner{margin:12px 20px 0}
.spravochnik-tablitsa .kol-vid{width:150px}.spravochnik-tablitsa .kol-postavshchik{width:110px}.spravochnik-tablitsa .kol-data{width:150px}
.spravochnik-tablitsa th{white-space:normal}
.poisk-spravochnika label.v-ryad{flex-direction:row;align-items:center;margin:0}
.kol-deystvie{width:130px}
.spravochnik-tablitsa td small,.zhurnal td small{display:block;font-size:12.5px}
.tekst-zapisi{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}
.stroka-pravki>td{background:var(--brand-50);vertical-align:top}
.stroka-pravki .input{width:100%}
.stroka-pravki select.input{margin-top:6px}
.deystviya-pravki{white-space:nowrap}
.deystviya-pravki .btn,.deystviya-pravki button{margin:2px 4px 2px 0}
.svyornuto-karta>summary{display:flex;align-items:center;gap:8px;padding:16px 20px;font-size:15px}
.svyornuto-karta[open]>summary{border-bottom:1px solid var(--line)}
.stranitsy{padding:14px 20px;justify-content:space-between}
.otbor-zhurnala{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px 16px;align-items:end}
.zhurnal .kol-vremya{width:170px}.zhurnal .kol-sotrudnik{width:150px}.zhurnal .kol-deystvie-zh{width:220px}.zhurnal .kol-kp{width:150px}
.zhurnal tr.raskryta>td{background:var(--soft);vertical-align:top}
.zhurnal td p{margin:0 0 6px;overflow-wrap:anywhere}
.podtverzhdenie-tseny{max-width:720px}
@media (max-width:1365px){.setka-poley{grid-template-columns:repeat(2,minmax(0,1fr))}.shablon-ekran,.spravochniki-ekran{grid-template-columns:minmax(0,1fr)}.otbor-zhurnala{grid-template-columns:repeat(3,minmax(0,1fr))}}
.parametry-rascheta .v-ryad{flex-wrap:wrap;row-gap:8px}
.seg label{white-space:nowrap}
.parametry-rascheta .v-ryad>.input{flex:0 0 110px;min-width:0}
.parametry-rascheta .v-ryad>.input.big{flex:0 0 150px}
label input,label textarea,label select{font-weight:400}
.knopki-sokhraneniya button{gap:4px}
/* Задача 6, раздел 4: неприметная ссылка «Термины» в подвале каждой страницы после входа; страница Терминов. */
.podval{max-width:1800px;margin:0 auto;padding:0 48px 20px;font-size:13px}
.podval a{color:var(--muted);text-decoration:none}
.podval a:hover{color:var(--brand);text-decoration:underline}
.terminy .card-b{max-width:860px}
.razdel-terminov+.razdel-terminov{margin-top:22px}
.razdel-terminov h2{font-size:17px;margin:0 0 8px}
.razdel-terminov p{margin:0 0 8px;line-height:1.5}
