/* Лист — единые токены проекта. Источник — дизайн-система
   claude.ai/design «Лист — дизайн-система» (tokens/colors.css, typography.css,
   spacing.css): зелёный акцент 0CA678, нейтрали с зелёным подтоном,
   Golos Text для текста и JetBrains Mono для чисел.
   Инлайн-стили страниц ссылаются на эти переменные — правьте здесь.
   Один css-файл на весь сайт: новых заводить не нужно. */
:root{
  /* фон и поверхности (paper-50 / paper-0 / paper-100) */
  --paper:#F7F9F8;
  --grid:#F7F9F8;          /* сетка-миллиметровка выключена (цвет = фон) */
  --card:#FFFFFF;
  --panel:#EFF3F1;
  /* текст (ink-900 / 700 / 500 / 400) */
  --ink:#141816;
  --sub:#3E4643;
  --muted:#6B746F;
  --ghost:#97A09A;
  /* линии (line-200 / line-300) */
  --hair:#E4E9E6;
  --hair2:#DCE2DE;
  --line:#D2DAD5;
  /* акценты (green-500 / 600 / 700 / 50 / 100) */
  --accent:#0CA678;
  --accent-dark:#099268;
  --accent-darker:#087F5B;
  --accent-soft:#E6F7F1;
  --accent-soft-bd:#C7EEDF;
  --blue:#2270B8;
  --blue-soft:#E9F2F9;
  --blue-soft-bd:#C8DEF0;
  /* красный — только про потерю данных: взведённый крестик удаления и отказ базы */
  --danger:#D6403A;
  --danger-dark:#B33530;
  /* состояния */
  --hover:#F3F6F4;
  --active:#ECF1EE;
  --tick:#D2DAD5;
  --selection:#C7EEDF;
  --scrim:rgba(20,24,22,.34);   /* затемнение под модальным окном */
  --green:#0CA678;
  /* шрифты */
  --f-head:'Golos Text',sans-serif;
  --f-body:'Golos Text',sans-serif;
  --f-mono:'JetBrains Mono',monospace;
}

/* Расценки: белый прайс на рабочем поле, по образцу smeta-editor.
   Все поверхности связаны с действующей темой; область ограничена разделом. */
.rates-workspace{
  --rates-canvas:color-mix(in srgb,var(--panel) 68%,var(--line));
  --rates-original-ink:var(--ink);
  --rates-original-sub:var(--sub);
  --rates-original-muted:var(--muted);
  --rates-rule:color-mix(in srgb,var(--ink) 24%,var(--hair));
  --rates-shadow:0 2px 4px color-mix(in srgb,var(--ink) 5%,transparent),0 16px 42px color-mix(in srgb,var(--ink) 9%,transparent);
  min-height:100dvh;min-width:0;background:var(--rates-canvas);color:var(--ink);
}
.rates-workspace,.rates-workspace *{box-sizing:border-box}
.rates-header{position:relative;z-index:5;background:var(--card);border-bottom:1px solid var(--line);padding:20px 26px 0}
.rates-tabs>div{margin-bottom:0!important;border-bottom:0!important}
.rates-tabs>div>span{font-size:13px!important;padding-bottom:12px!important}
.rates-view{position:relative;font-size:13px}
.rates-view[data-visible="false"]{visibility:hidden;pointer-events:none}
.rates-view summary,.rates-category-toggle{
  display:flex;align-items:center;justify-content:space-between;gap:18px;list-style:none;
  min-height:38px;padding:9px 13px;border:1px solid var(--line);border-radius:4px;
  background:var(--card);color:var(--ink);font:inherit;cursor:pointer;
}
.rates-view summary::-webkit-details-marker{display:none}
.rates-view summary:hover,.rates-view[open] summary{border-color:var(--accent-dark);color:var(--accent-dark)}
.rates-view__popover{
  position:absolute;right:0;top:calc(100% + 8px);width:310px;max-width:calc(100vw - 40px);
  padding:18px;z-index:45;background:var(--card);border:1px solid var(--line);border-radius:5px;box-shadow:var(--rates-shadow);
}
.rates-view__title{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.rates-view__columns{display:grid;grid-template-columns:1fr 1fr;gap:15px 12px;padding-bottom:20px;margin-bottom:18px;border-bottom:1px solid var(--hair)}
.rates-body{padding:22px 24px 64px;background-image:none;min-height:calc(100dvh - 130px)}
.rates-layout{display:grid;grid-template-columns:196px minmax(0,1fr);align-items:start;gap:22px}
.rates-layout[data-inspector="true"]{grid-template-columns:184px minmax(0,1fr) minmax(300px,330px);gap:18px}
.rates-categories{position:sticky;top:calc(var(--верх,0px) + 20px);min-width:0;padding:4px 0 16px}
.rates-categories>div:not(.rates-categories__title){max-width:none!important;width:100%;position:static!important;background:transparent!important}
.rates-categories__title{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 8px 15px}
.rates-categories button,.rates-categories input{border-radius:4px!important}
.rates-category-toggle{display:none}
.rates-center{min-width:0}
.rates-toolbar>div{gap:9px!important;margin-bottom:17px!important}
.rates-toolbar input{font-size:13px!important;border-radius:4px!important;background:var(--card)!important}
.rates-toolbar button{border-radius:4px!important;font-size:13px!important;min-height:36px}
.rates-sheet{min-width:0;padding:22px 22px 16px;background:var(--card);border:1px solid var(--line);border-radius:3px;box-shadow:var(--rates-shadow)}
.rates-sheet__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:19px;margin-bottom:16px;border-bottom:2px solid var(--ink)}
.rates-sheet__eyebrow{display:block;font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.rates-sheet__head h2{font-family:var(--f-head);font-size:21px;font-weight:600;line-height:1.2;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere}
.rates-sheet__count{flex:none;font-size:11px;font-family:var(--f-mono);color:var(--muted);white-space:nowrap;padding-bottom:2px}
.rates-sheet [style*="text-transform: uppercase"]{color:var(--sub)!important;background:var(--panel)!important;min-height:35px;border-bottom-color:var(--rates-rule)!important;font-size:10px!important;letter-spacing:.025em!important}
.rates-row{min-height:38px!important;border-bottom:1px solid var(--hair)!important;transition:background-color .12s ease}
.rates-row>span:not(:first-child){border-left:1px solid color-mix(in srgb,var(--hair) 65%,transparent);padding-left:8px}
.rates-row input,.rates-row textarea,.rates-row button{border-radius:3px!important}
.rates-row:last-child{border-bottom-color:var(--rates-rule)!important}
.rates-inspector__label{display:none}
.rates-workspace .rates-inspector{
  width:100%;padding:20px!important;border-radius:4px!important;border:1px solid var(--line)!important;
  top:calc(var(--верх,0px) + 20px)!important;box-shadow:0 8px 28px color-mix(in srgb,var(--ink) 7%,transparent);
}
.rates-workspace .rates-inspector--modal{width:560px}
.rates-workspace .rates-inspector__label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:-1px 0 15px;padding-bottom:14px;border-bottom:1px solid var(--hair)}
.rates-workspace .rates-inspector textarea[title="Название позиции"]{font-size:16px!important;font-weight:600!important;line-height:1.4!important;padding:0!important;border-radius:3px!important}
.rates-workspace .rates-inspector input{border-radius:4px!important;min-height:30px}
.rates-workspace .rates-inspector>div:first-of-type+div{align-items:flex-start!important}
.rates-workspace button:focus-visible,.rates-workspace summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:1250px){
  .rates-layout,.rates-layout[data-inspector="true"]{grid-template-columns:minmax(0,1fr)}
  .rates-layout[data-inspector="true"]{grid-template-columns:minmax(0,1fr) 310px}
  .rates-category-toggle{display:flex;width:100%;margin-bottom:14px;font-size:13px}
  .rates-categories{display:none;grid-column:1/-1;position:static;background:var(--card);padding:18px;border:1px solid var(--line);border-radius:4px}
  .rates-layout[data-categories-open="true"] .rates-categories{display:block}
  .rates-categories>div:not(.rates-categories__title){max-height:46vh;overflow-y:auto}
  .rates-body{padding:18px 18px 50px}
  .rates-sheet{padding:18px 16px 12px}
}
@media(max-width:800px){
  .rates-header{padding:17px 16px 0}
  .rates-tabs{overflow-x:auto}
  .rates-tabs>div{flex-wrap:nowrap!important;width:max-content;min-width:100%}
  .rates-tabs>div>span:last-child:empty{display:none}
  .rates-body{padding:14px 12px 42px}
  .rates-layout,.rates-layout[data-inspector="true"]{grid-template-columns:minmax(0,1fr)}
  .rates-sheet{padding:16px 10px 10px}
  .rates-sheet__head{gap:10px;padding-bottom:14px}
  .rates-sheet__head h2{font-size:19px}
  .rates-workspace .rates-layout>.rates-inspector{position:fixed!important;top:auto!important;bottom:0;left:0;right:0;z-index:25;width:100%;max-height:70dvh;overflow-y:auto;border-radius:12px 12px 0 0!important;box-shadow:0 -8px 32px color-mix(in srgb,var(--ink) 16%,transparent)}
  .rates-view__popover{position:fixed;top:112px;right:18px;max-height:calc(100dvh - 140px);overflow-y:auto}
}
@media(prefers-reduced-motion:reduce){.rates-row{transition:none}}
@media print{.rates-workspace{background:var(--card)}.rates-header,.rates-categories,.rates-toolbar,.rates-category-toggle,.rates-workspace .rates-inspector{display:none!important}.rates-body{padding:0;background:none}.rates-layout{display:block}.rates-sheet{box-shadow:none;border:0;padding:0}}

/* Локальная настройка типографики расценок. Перекрывает старые инлайн-размеры,
   не затрагивая другие разделы и сам виджет. */
.rates-workspace :is(.rates-row,.rates-sheet [data-шапка],.rates-categories),
.rates-workspace :is(.rates-row,.rates-sheet [data-шапка],.rates-categories) :is(div,span,input,textarea,select,button,summary,label,p,a){
  font-size:var(--rt-size)!important;line-height:var(--rt-line)!important;
  font-weight:var(--rt-weight)!important;font-family:var(--rt-font)!important;
}
.rates-workspace .rates-row{min-height:0!important;padding:var(--rt-y) var(--rt-x)!important}
.rates-workspace .rates-row>span:not(:first-child){padding-left:0}
.rates-workspace .rates-row>span>span[style*="overflow-wrap"]{padding-block:0!important}
.rates-workspace .rates-row input{min-height:calc(var(--rt-size) * var(--rt-line));height:auto!important}
.rates-workspace .rates-sheet [data-шапка]>div>div{padding:var(--rt-y) var(--rt-x)!important;min-height:0!important}
.rates-workspace .rates-categories{padding:var(--rt-y) var(--rt-x)}
.rates-workspace .rates-categories [draggable]{padding-block:var(--rt-y)!important;min-height:0!important;height:auto!important}
.rates-workspace :is(.rates-header h1,.rates-sheet__head h2){
  font-size:var(--rt-size)!important;line-height:var(--rt-line)!important;font-weight:var(--rt-weight)!important;
  font-family:var(--rt-font)!important;padding:var(--rt-y) var(--rt-x);color:var(--ink)!important;
}
.rates-workspace .rates-inspector{padding:calc(var(--rt-y) + 4px) var(--rt-x)!important}
.rates-workspace .rates-inspector textarea[title="Название позиции"]{font-size:calc(var(--rt-size) * 1.15)!important;font-weight:max(500,var(--rt-weight))!important;line-height:var(--rt-line)!important}
.rates-workspace .rates-inspector__label{margin-bottom:var(--rt-y);padding-bottom:var(--rt-y)}
.rates-workspace .rates-inspector>div[style*="border-top"]{margin-block:var(--rt-y)!important}
.rates-workspace .rates-inspector__prices{display:grid!important;grid-template-columns:minmax(0,1fr);gap:var(--rt-y)!important}
.rates-workspace .rates-inspector__prices>span{display:grid!important;grid-template-columns:minmax(80px,1fr) minmax(100px,1.2fr);align-items:center;min-width:0}
.rates-workspace .rates-inspector__prices input{width:100%!important;text-align:right;padding:4px 6px!important;min-height:32px;border:1px solid var(--hair)!important;background:var(--card)}
.rates-inspector__section{margin-block:8px;border-block:1px solid var(--hair);padding-block:4px}
.rates-inspector__section summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:8px 0;color:var(--ink)}
.rates-inspector__section summary::-webkit-details-marker{display:none}
.rates-inspector__section summary:before{content:'+';color:var(--muted)}
.rates-inspector__section[open] summary:before{content:'−'}
.rates-inspector__section summary>span{margin-left:auto;color:var(--muted);text-align:right}
.rates-workspace .rates-inspector__section{margin-block:var(--rt-y)}
.rates-workspace .rates-inspector__section summary{padding-block:var(--rt-y)}
.rates-workspace .rates-inspector__footer{flex-wrap:wrap;padding-top:var(--rt-y);gap:8px!important}
.rates-workspace .rates-inspector__footer>span:first-child{flex-basis:100%}
.rates-workspace .rates-inspector__footer>span:last-child{margin-left:auto}
.rates-tuner{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));right:18px;z-index:90;font:400 14px/1.4 var(--f-body);color:var(--ink);max-width:calc(100vw - 24px)}
.rates-tuner__toggle{display:flex;align-items:center;gap:8px;margin-left:auto;min-height:42px;padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;box-shadow:var(--rates-shadow);cursor:pointer}
.rates-tuner__toggle>span{font-size:18px;font-weight:600}
.rates-tuner__panel{width:320px;max-width:100%;max-height:calc(100dvh - 100px);overflow:auto;margin-bottom:8px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--rates-shadow)}
.rates-tuner__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.rates-tuner button{cursor:pointer;font:inherit}
.rates-tuner__header button{border:0;background:none;color:var(--muted);padding:5px 8px}
.rates-tuner__field{display:grid;gap:5px;margin-bottom:12px}
.rates-tuner select{width:100%;min-height:36px;border:1px solid var(--line);border-radius:5px;padding:6px 9px;background:var(--card);color:var(--ink);font:inherit}
.rates-tuner__range{display:block;margin-bottom:10px}
.rates-tuner__range>span{display:flex;justify-content:space-between;gap:8px}
.rates-tuner output{font-variant-numeric:tabular-nums;color:var(--muted)}
.rates-tuner input[type="range"]{display:block;width:100%;height:22px;padding:0;margin:4px 0;accent-color:var(--accent-dark);cursor:pointer}
.rates-tuner__note{font-size:12px;color:var(--muted);margin:12px 0}
.rates-tuner__actions{display:flex;gap:8px;margin-bottom:8px}
.rates-tuner__actions button{flex:1;background:var(--panel);color:var(--ink);border:1px solid var(--hair);border-radius:5px;padding:8px 4px;font-size:12px}
.rates-tuner__copy{width:100%;border:1px solid var(--accent-dark);border-radius:5px;padding:9px;background:var(--accent-dark);color:var(--card)}
.rates-tuner__status{font-size:12px;color:var(--muted);margin-top:8px}
.rates-tuner__status:empty{display:none}
.rates-tuner__export{width:100%;height:100px;margin-top:8px;font:12px/1.4 var(--f-mono);color:var(--ink);background:var(--panel);border:1px solid var(--line)}
.rates-tuner :is(button,select,input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:800px){.rates-tuner{right:12px;bottom:max(10px,env(safe-area-inset-bottom))}.rates-workspace .rates-layout>.rates-inspector{padding-bottom:76px!important}.rates-body{padding-bottom:90px}}
@media print{.rates-tuner{display:none!important}}

/* Общая рабочая поверхность всех вкладок прайса. */
.rates-workspace{--rates-canvas:var(--paper)}
.rates-sheet,.rates-surface{border-radius:6px;box-shadow:0 2px 8px color-mix(in srgb,var(--ink) 3%,transparent)}
.rates-navigation{display:flex;gap:4px;overflow-x:auto;scrollbar-width:thin;padding:0 0 10px}
.rates-navigation button{flex:none;white-space:nowrap;padding:9px 12px;min-height:38px;border:1px solid transparent;border-radius:5px;background:none;color:var(--muted);font:500 14px/1.3 var(--f-body);cursor:pointer}
.rates-navigation button:hover{background:var(--hover);color:var(--ink)}
.rates-navigation button[aria-current="page"]{background:var(--accent-soft);color:var(--accent-darker);border-color:var(--accent-soft-bd)}
.rates-save-error{padding:8px 0 12px;font-size:14px;color:var(--danger)}
.rates-body :is(button,input,select,textarea){border-radius:4px}
.rates-surface{min-width:0;border:1px solid var(--line);padding:18px;background:var(--card)}
.rates-surface__head{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.rates-surface__head h2{margin:0;font:600 16px/1.35 var(--f-head);color:var(--ink)}
.rates-surface__head>span{font:400 12px/1.4 var(--f-mono);color:var(--muted);white-space:nowrap}
.rates-section-label{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:12px}
.rates-relations__layout{display:grid;grid-template-columns:180px minmax(280px,1fr) minmax(320px,1fr);gap:18px;align-items:start}
.rates-reference-categories{position:sticky;top:20px;min-width:0;padding:8px 0}
.rates-reference-categories>div{position:static!important;max-width:none!important;background:transparent!important}
.rates-relations__picker{min-height:470px;max-height:740px;overflow:auto}
.rates-relations__source{padding-inline:12px}
.rates-relations__source .rates-row{grid-template-columns:minmax(0,1fr) auto!important;gap:4px 10px!important}
.rates-relations__source .rates-row>span:first-child{grid-column:1;grid-row:1;white-space:normal!important;overflow-wrap:anywhere}
.rates-relations__source .rates-row>span:nth-child(2){grid-column:1/-1;grid-row:2;border-left:0;font-size:12px!important}
.rates-relations__source .rates-row>span:nth-child(2):empty{display:none}
.rates-relations__source .rates-row>span:last-child{grid-column:2;grid-row:1;border-left:0;white-space:nowrap}
.rates-relations__existing{margin-top:20px}
.rates-relation-card{border-style:solid!important;border-radius:5px!important;padding:14px!important}
.rates-relation-card>div:not(:first-child){padding-block:6px;border-top:1px solid var(--hair)}
.rates-relations__existing>div:first-child>span:first-child{font-size:16px!important}
.rates-directory{grid-template-columns:240px minmax(0,1fr)!important;gap:18px!important}
.rates-directory[data-inspector="true"]{grid-template-columns:210px minmax(0,1fr) 320px!important}
.rates-directory__list{background:var(--card)!important;padding:14px!important}
.rates-directory__table{min-width:0;overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:6px}
.rates-directory__table>div{border:0!important;border-radius:0!important;min-width:600px}
.rates-directory__table .rates-row>span:first-child{white-space:normal!important;overflow-wrap:anywhere}
.rates-import{max-width:1100px;margin-inline:auto}
.rates-import__steps{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 18px;font-size:14px;color:var(--muted)}
.rates-import__steps li{padding:9px 14px;border-bottom:2px solid var(--line)}
.rates-import__steps li[data-active="true"]{border-color:var(--accent-dark);color:var(--accent-darker);font-weight:600}
.rates-import__upload{margin-bottom:20px}
.rates-import__file{position:relative;background:var(--accent-soft)!important;color:var(--accent-darker)!important;border-color:var(--accent-soft-bd)!important;font-weight:600}
.rates-import__file:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.rates-import__file-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.rates-import__upload textarea{min-height:140px;font-size:14px!important;line-height:1.6;background:var(--paper)!important;border-color:var(--line)!important}
.rates-import__block{margin-bottom:18px;overflow-x:auto}
.rates-import__block>div:first-child{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px!important}
.rates-import__block>div:first-child>span:first-child{font-size:15px!important;font-weight:600!important;color:var(--ink);text-transform:none!important}
.rates-import__block>div:has(.rates-row){min-width:600px;border-radius:4px!important}
.rates-workspace :is(.rates-reference-categories),
.rates-workspace :is(.rates-reference-categories) :is(div,span,input,textarea,select,button,summary,label,p,a){font-size:var(--rt-size)!important;line-height:var(--rt-line)!important;font-weight:var(--rt-weight)!important;font-family:var(--rt-font)!important}
.rates-workspace :is(.rates-reference-categories){padding:var(--rt-y) var(--rt-x)!important}
.rates-workspace .rates-reference-categories [draggable]{padding-block:var(--rt-y)!important;height:auto!important;min-height:0!important}
.rates-workspace .rates-body [style*="grid-template-columns"][style*="text-transform"],
.rates-workspace .rates-body [style*="grid-template-columns"][style*="text-transform"] span{font-size:var(--rt-size)!important;line-height:var(--rt-line)!important;font-weight:var(--rt-weight)!important;font-family:var(--rt-font)!important}
.rates-workspace .rates-body [style*="grid-template-columns"][style*="text-transform"]{padding:var(--rt-y) var(--rt-x)!important;background:var(--panel)!important;color:var(--sub)!important}
.rates-workspace .rates-surface__head h2{font-size:calc(var(--rt-size) * .8)!important;line-height:var(--rt-line)!important;font-weight:var(--rt-weight)!important;font-family:var(--rt-font)!important;padding:var(--rt-y) var(--rt-x);color:var(--ink)!important}
@media(max-width:1300px){.rates-relations__layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.rates-reference-categories{grid-column:1/-1;position:static;max-height:220px;overflow:auto;border-bottom:1px solid var(--line)}.rates-directory,.rates-directory[data-inspector="true"]{grid-template-columns:210px minmax(0,1fr)!important}.rates-directory>.rates-inspector{grid-column:2;position:static!important}}
@media(max-width:800px){.rates-relations__layout,.rates-directory,.rates-directory[data-inspector="true"]{grid-template-columns:minmax(0,1fr)!important}.rates-directory>.rates-inspector{grid-column:1}.rates-directory__list{position:static!important}.rates-relations__picker{min-height:220px;max-height:none;overflow:visible}.rates-surface{padding:14px}.rates-import__steps{gap:4px;font-size:12px}.rates-import__steps li{padding:8px}.rates-import__upload .rates-surface__head{flex-wrap:wrap}.rates-relations__existing .rates-row{grid-template-columns:minmax(0,1fr)!important}.rates-relations__existing .rates-row>span{white-space:normal!important;border-left:0}}

/* Сопутствующие: основной товар → состав → подбор, три независимые панели. */
.rates-companions__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr);gap:16px;align-items:start}
.rates-companions__layout>section{min-height:540px}
.rates-companions__layout .rates-surface__head{min-height:66px}
.rates-companions__layout .rates-surface__head h2{padding:0;overflow-wrap:anywhere}
.rates-companions__filter{border-bottom:1px solid var(--hair);margin-bottom:12px;padding-bottom:10px}
.rates-companions__filter>summary,.rates-companions__all>summary{cursor:pointer;font:500 14px/1.4 var(--f-body);color:var(--sub);padding:6px 0}
.rates-companions .rates-companions__categories{position:static;max-height:260px;overflow:auto;border:0;margin-top:8px}
.rates-companions__links{max-height:430px;overflow:auto;margin-top:14px}
.rates-companions__link{display:grid!important;grid-template-columns:minmax(0,1fr) 66px auto 18px;gap:8px!important}
.rates-companions__link>span:first-child{display:none}
.rates-companions__link>span:nth-child(2){white-space:normal!important;overflow-wrap:anywhere;border:0}
.rates-companions__empty{font:400 14px/1.6 var(--f-body);color:var(--muted);margin:16px 0}
.rates-companions__all[open]>summary{margin-bottom:16px;border-bottom:1px solid var(--hair);padding-bottom:12px}
@media(max-width:1100px){.rates-companions__layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.rates-companions__layout>.rates-companions__picker{grid-column:1/-1;min-height:0}}
@media(max-width:700px){.rates-companions__layout{grid-template-columns:minmax(0,1fr)}.rates-companions__layout>section{min-height:0}.rates-companions__layout .rates-surface__head{min-height:0}}

/* Канон действий: закрыть — крестик, удалить — корзина. */
.ss-close-button,.ss-delete-button,.ss-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:none;border:0;border-radius:4px;background:transparent;padding:2px;min-height:22px;font:inherit;color:var(--muted);cursor:pointer;vertical-align:middle}
.ss-close-button{width:30px;height:30px;padding:5px;color:var(--muted)}
.ss-close-button:hover,.ss-icon-button:hover{color:var(--ink);background:var(--hover)}
.ss-delete-button:hover{background:var(--hover)}
.ss-trash-icon{width:14px;height:14px;flex:none;pointer-events:none}
.ss-close-button:focus-visible,.ss-delete-button:focus-visible,.ss-icon-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rates-inspector__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;border-bottom:1px solid var(--hair);padding-bottom:6px;color:var(--muted)}
.rates-inspector__top>span{font-size:12px}
.rates-inspector__top .ss-close-button{margin-left:auto}
.rates-header{padding:10px 16px 0}
.rates-workspace .rates-header h1{padding:0}
.rates-navigation{gap:0;padding-bottom:6px}
.rates-navigation button{padding:5px 9px;min-height:30px;font-size:13px;border-radius:4px}
.rates-view summary{min-height:30px;padding:5px 10px}
@media(pointer:coarse){.ss-close-button{width:40px;height:40px}.ss-delete-button,.ss-icon-button{min-height:30px;min-width:24px}}

/* Оболочка: сброс body, ссылки, поля. В разделах это не дублируется. */
/* Место под скроллбар зарезервировано всегда: при переключении разделов разной
   высоты полоса прокрутки появляется и исчезает без сдвига всей разметки. */
html{scrollbar-gutter:stable}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased}
a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{color:var(--accent)}
::selection{background:var(--selection)}
/* Фокус — акцентный, как в дизайн-системе (border-focus = green-500) */
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
input::placeholder,textarea::placeholder{color:var(--ghost)}
input,textarea,select{font-family:var(--f-body)}
input[type=range]{-webkit-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--line);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid #FFFFFF;box-shadow:0 1px 4px rgba(17,24,39,.25);cursor:pointer}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid #FFFFFF;cursor:pointer}
/* Тонкий ползунок конструктора шаблона: на панели их полтора десятка подряд,
   и обычная синяя дорожка забивает собой все настройки разом. */
input[type=range].тонкий{height:14px;background:none}
input[type=range].тонкий::-webkit-slider-runnable-track{height:1px;background:var(--line)}
input[type=range].тонкий::-moz-range-track{height:1px;background:var(--line)}
input[type=range].тонкий::-webkit-slider-thumb{width:11px;height:11px;border:0;margin-top:-5px;background:var(--ink);box-shadow:none}
input[type=range].тонкий::-moz-range-thumb{width:11px;height:11px;border:0;background:var(--ink);box-shadow:none}

/* Первый экран лендинга: телефон получает один столбец уже в HTML/CSS,
   настройки идут после листа и не занимают нижнюю часть окна шторкой. */
.landing-constructor__heading{padding:28px 14px 10px}
.landing-constructor__layout{display:grid;grid-template-columns:minmax(0,1fr)}
.landing-constructor__sheet{position:relative;overflow:hidden;min-width:0;padding:14px;scroll-margin-top:160px}
.landing-constructor__settings{position:relative;min-width:0;background:var(--card);color:var(--ink);border-top:1px solid var(--hair);scroll-margin-top:160px}
.landing-constructor__settings-body{padding:18px 20px 30px;box-sizing:border-box;background:var(--card)}
.landing-constructor__wide{display:none}
.landing-constructor__narrow{display:block}
@media (min-width:980px){
  .landing-constructor__heading{padding:54px clamp(14px,2.6vw,40px) 10px}
  .landing-constructor__layout{grid-template-columns:minmax(0,1fr) 348px}
  .landing-constructor__sheet{padding:clamp(14px,2.6vw,40px)}
  .landing-constructor__settings{border-top:0;border-left:1px solid var(--hair)}
  .landing-constructor__settings-frame{position:absolute;inset:0}
  .landing-constructor__settings-body{position:sticky;top:64px;padding:13px 20px 30px}
  .landing-constructor__wide{display:inline}
  .landing-constructor__narrow{display:none}
}

/* Появление модального окна: затемнение проявляется, лист чуть поднимается.
   Длительности — из «Поведения» темы: 200-350 мс. */
@keyframes ss-fade{from{opacity:0}to{opacity:1}}
@keyframes ss-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Кабинет собирается: значок «Листа» обводит сам себя штрих за штрихом — лист,
   строки сметы, зелёный листок, — а под ним дописывается ещё одна строка.
   Штрих доводится до конца и там остаётся: при `prefers-reduced-motion` кадры
   схлопываются в последний, и человек видит целый значок, а не пустое место.
   Бесконечно двигается только строка под ним — она и говорит «идёт загрузка».
   Появление отложено на треть секунды: на быстрой загрузке загрузчик не мигнёт. */
@keyframes ss-shtrih{to{stroke-dashoffset:0}}
@keyframes ss-dopisat{0%{transform:translateX(0)}50%{transform:translateX(178%)}100%{transform:translateX(0)}}

/* Точка бежит по контуру значка у кнопки «Создать смету» в рейле. Единственная
   незатухающая анимация кабинета и единственная не функциональная: кнопка эта —
   главное действие, и живой контур её и выделяет. Правило ниже гасит её вместе
   со всеми остальными, когда человек просит меньше движения. */
@keyframes ss-tochka{to{offset-distance:100%}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* Печать — она же выгрузка в PDF: «Скачать PDF» это печать браузером в файл.
   Отдельного генератора не заводим: документ у покупателя и так свёрстан, второй
   его вариант в коде разошёлся бы с первым на первой же правке.

   Правил ровно три: убрать с листа всё, что нажимают (`data-print="hide"`),
   вернуть бумаге белый цвет (у страниц клиента своя палитра, поэтому !important)
   и не резать строки сметы посередине. */
@media print{
  @page{margin:12mm}
  /* Рабочие таблицы кабинета — широкие: расценки с ценами и наценкой, закуп с
     четырьмя стадиями, клиенты с заходами. В книжный A4 они не влезают, и всё,
     что не поместилось, просто отрезается. Поэтому кабинет печатается альбомно,
     а предложение покупателю остаётся книжным: это разные документы.
     Именованная страница — единственный способ иметь в одном css два формата. */
  @page кабинет{size:A4 landscape;margin:12mm}
  [data-cabinet]{page:кабинет}
  html,body{background:#FFFFFF !important;scrollbar-gutter:auto}
  /* Всё, что на бумаге не работает: рейл, липкие панели, кнопки, карусели */
  [data-print="hide"]{display:none !important}
  /* А это — ячейка сетки, которую надо опустошить, но не убирать: display:none
     сдвинул бы соседние колонки таблицы влево, и сумма главы уехала бы в цену */
  [data-print="blank"]{visibility:hidden !important}
  /* Лист документа: своя заливка, тень и скругления на бумаге лишние */
  [data-print="page"]{background:#FFFFFF !important;box-shadow:none !important;
    min-height:0 !important;padding-top:0 !important;padding-bottom:0 !important;
    margin-left:0 !important;margin-right:0 !important}
  [data-print="sheet"]{background:#FFFFFF !important;box-shadow:none !important;
    border-radius:0 !important;margin:0 !important;padding:0 !important;max-width:none !important}
  /* Строку сметы, карточку и заголовок с его началом через страницу не рвём */
  [data-print="keep"],tr,li{break-inside:avoid;page-break-inside:avoid}
  h1,h2,h3{break-after:avoid;page-break-after:avoid}
  /* Ссылку на бумаге подчёркивать незачем: нажать её нельзя, адрес и так в шапке */
  a{text-decoration:none !important;color:inherit !important}
  /* Печатаем то, что на экране: без этого браузер выбеливает заливки таблиц */
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  /* Широкие таблицы кабинета. На экране они лежат в контейнере с боковой
     прокруткой и своей минимальной шириной — на бумаге прокрутки нет, и всё,
     что не влезло в A4, просто отрезалось: колонка «Купить» в закупе,
     «Альтернативы» в расценках. Снимаем и прокрутку, и минимальную ширину:
     колонки сжимаются, лист получается целым. */
  [style*="overflow-x"],[style*="overflowX"]{overflow-x:visible !important}
  [style*="min-width"]{min-width:0 !important}
  /* Липкие панели на бумаге не липнут, а лезут поверх текста */
  [style*="position: sticky"],[style*="position:sticky"]{position:static !important}
  /* Поля ввода на бумаге — это числа и слова, а не формы: печатается таблица,
     а не экран. Рамки и стрелки списков остаются рамками и стрелками, которые
     некуда нажать, и лист начинает выглядеть анкетой. */
  input,textarea,select{border-color:transparent !important;background:transparent !important;
    box-shadow:none !important;-webkit-appearance:none;appearance:none}
  /* Галочку выбора строки на бумаге не поставить. Гасим, а не убираем: она
     стоит первой колонкой таблицы, и остальные сдвинулись бы влево. */
  input[type="checkbox"],input[type="radio"]{visibility:hidden !important}
}
/* Закуп: согласованная компактная таблица. Цвета и шрифты — текущая тема. */
.zk-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 10px;border:1px solid var(--hair);border-radius:var(--radius);background:var(--card);color:var(--ink);font:400 12px var(--f-body);white-space:nowrap;cursor:pointer}
.zk-button:hover{background:var(--hover);border-color:var(--line)}
.zk-button-accent{background:var(--accent-soft);border-color:var(--accent-soft-bd);color:var(--accent-dark);font-weight:500}
.zk-button-accent:hover{background:var(--accent-soft);border-color:var(--accent)}
.zk-button-quiet{background:transparent;border-color:transparent;color:var(--muted)}
.zk-button-quiet:hover{border-color:transparent;color:var(--ink)}
.zk-button:disabled{opacity:.45;cursor:default}
.zk-actions,.zk-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}
.zk-actions-hidden{visibility:hidden;pointer-events:none}
.zk-toolbar{margin-bottom:14px;gap:10px}
.zk-spacer{flex:1}
.zk-count,.zk-muted{font-size:12px;color:var(--muted)}
.zk-settings{margin-bottom:18px}
.zk-settings-actions{display:flex;justify-content:flex-end}
.zk-matrix-scroll{overflow:auto}
.zk-matrix{border-collapse:collapse;width:100%;max-width:720px;min-width:530px;font-size:11px}
.zk-matrix th,.zk-matrix td{padding:5px 10px;height:29px;text-align:center;border-bottom:1px dotted var(--hair);font-weight:400}
.zk-matrix th:first-child{text-align:left;width:100px;color:var(--muted)}
.zk-matrix label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.zk-matrix input,.zk-table input[type=checkbox]{accent-color:var(--accent-dark);width:13px;height:13px;margin:0;flex:none;cursor:pointer}
.zk-layout{display:grid;grid-template-columns:var(--panel-chapters,170px) minmax(0,1fr);gap:20px;align-items:start;min-width:0}
.zk-tree{display:flex;flex-direction:column;gap:2px;padding-top:2px;min-width:0;max-height:65dvh;overflow:auto}
.zk-tree button{flex:none;min-height:29px;text-align:left;border:0;border-left:2px solid transparent;padding:5px 9px;font:400 12px var(--f-body);color:var(--sub);background:transparent;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zk-tree button:hover{background:var(--hover);color:var(--ink)}
.zk-tree .zk-tree-node{padding-left:21px;font-size:11px;color:var(--muted)}
.zk-tree .zk-current{color:var(--ink);background:var(--active);border-left-color:var(--accent)}
.zk-workspace{min-width:0}
.zk-table-scroll{max-height:65dvh;min-height:230px;overflow:auto;scrollbar-width:thin;position:relative;border-bottom:1px solid var(--hair)}
.zk-table{border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:100%;width:max-content;background:var(--paper);font:12px var(--f-body)}
.zk-table th,.zk-table td{box-sizing:border-box;height:29px;padding:0 6px;border:0;border-bottom:1px dotted var(--hair);font-weight:400;white-space:nowrap;vertical-align:middle}
.zk-table .zk-name-col{width:290px}
.zk-table .zk-qty-col{width:90px}
.zk-table .zk-price-col{width:90px}
.zk-table .zk-sum-col{width:108px}
.zk-table thead{position:sticky;top:0;z-index:4;background:var(--paper)}
.zk-table thead th{height:28px;color:var(--muted);font-family:var(--f-mono);font-size:10px}
.zk-table .zk-stage-head{text-align:center;border-left:1px solid var(--hair)}
.zk-table .zk-subhead{text-align:right}
.zk-table .zk-stage-start{border-left:1px solid var(--hair)}
.zk-table .zk-frozen{position:sticky;left:0;z-index:2;background:var(--paper);text-align:left;width:290px;min-width:290px;max-width:290px}
.zk-table thead .zk-frozen{z-index:5}
.zk-table .zk-name{display:flex;align-items:center;gap:8px;padding-left:32px;min-width:0;height:28px;box-sizing:border-box}
.zk-table thead .zk-name{padding-left:4px}
.zk-name>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zk-table .zk-group th,.zk-table .zk-group td{height:33px;border-bottom-color:transparent}
.zk-group button{display:flex;gap:8px;align-items:center;border:0;background:transparent;width:100%;height:32px;padding:0 4px;text-align:left;color:var(--ink);font:500 12px var(--f-body);cursor:pointer}
.zk-group button>span:first-child{font-size:10px;width:10px;color:var(--ghost);flex:none}
.zk-group button>span:last-child{overflow:hidden;text-overflow:ellipsis}
.zk-group-node button{padding-left:20px;font-size:11px;font-weight:400;color:var(--sub)}
.zk-group-chapter button{font-weight:600}
.zk-group button:hover{background:var(--hover)}
.zk-table .zk-item:hover>td,.zk-table .zk-item:hover>.zk-frozen{background:var(--hover)}
.zk-table .zk-checked>td,.zk-table .zk-checked>.zk-frozen{background:var(--active)}
.zk-note-button{display:flex;align-items:center;justify-content:center;flex:none;width:24px;height:26px;padding:4px;border:0;border-radius:var(--radius);background:transparent;color:var(--ghost);cursor:pointer;opacity:0}
.zk-note-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round}
.zk-item:hover .zk-note-button,.zk-item:focus-within .zk-note-button,.zk-note-button.zk-has-note{opacity:1}
.zk-note-button.zk-has-note{color:var(--sub)}
.zk-note-button:hover{color:var(--accent-dark);background:var(--active)}
.zk-value{display:flex;align-items:center;gap:2px;min-width:0}
.zk-field-wrap{min-width:0;width:100%}
.zk-cell-wrap{position:relative;flex:1}
.zk-table .zk-cell-input{height:26px;min-width:0;text-align:right;font-family:var(--f-mono);font-size:11px;padding:2px 4px}
.zk-table .zk-price .zk-cell-input{color:var(--accent-dark)}
.zk-unit{max-width:25px;overflow:hidden;text-overflow:ellipsis;font-size:9px;color:var(--ghost);flex:none}
.zk-table .zk-sum{font:11px var(--f-mono);text-align:right}
.zk-field-error,.zk-error{color:var(--danger);font-size:12px;white-space:normal}
.zk-cell-wrap .zk-field-error{position:absolute;right:0;top:100%;z-index:6;width:180px;padding:8px;background:var(--card);border:1px solid var(--hair);border-radius:var(--radius)}
.zk-table tfoot{position:sticky;bottom:0;z-index:3;background:var(--paper)}
.zk-table tfoot th,.zk-table tfoot td{height:34px;border-top:1px solid var(--hair);border-bottom:0;font-weight:500}
.zk-table tfoot th{padding-left:10px;font-size:12px}
.zk-form{display:flex;flex-direction:column;gap:14px;min-width:0}
.zk-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);min-width:0}
.zk-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.zk-form-amounts{grid-template-columns:1fr 70px 1fr}
.zk-form .zk-input{width:100%;box-sizing:border-box;border:1px solid var(--hair);border-radius:var(--radius);padding:7px 9px;background:var(--card);color:var(--ink);font-family:var(--f-body);font-size:13px;min-width:0}
.zk-form textarea{resize:vertical}
.zk-form p{margin:0;line-height:1.5}
.zk-form-total{margin-left:auto;font:12px var(--f-mono);color:var(--sub)}
.zk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:760px){
 .zk-layout{grid-template-columns:minmax(0,1fr);gap:10px}
 .zk-tree{flex-direction:row;overflow:auto;padding-bottom:6px;max-height:none}
 .zk-tree .zk-tree-node{display:none}
 .zk-tree button{border-left:0;border-bottom:2px solid transparent;padding:5px 8px}
 .zk-tree .zk-current{border-bottom-color:var(--accent);background:transparent}
 .zk-table .zk-name-col,.zk-table .zk-frozen{width:210px;min-width:210px;max-width:210px}
 .zk-table .zk-name{padding-left:18px}
 .zk-note-button{opacity:1}
 .zk-count{display:none}
 .zk-toolbar{gap:6px}
 .zk-table-scroll{max-height:60dvh}
 .zk-form-grid{grid-template-columns:1fr}
 .zk-form-amounts{grid-template-columns:1fr 65px 1fr}
}
@media(hover:none){.zk-note-button{opacity:1}}

/* Шапка лендинга: обе кнопки видны на телефоне до гидратации. */
[data-landing-header]{max-width:1120px;margin:0 auto;padding:8px 14px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
[data-landing-logo]{display:flex;align-items:center;gap:9px;text-decoration:none;width:max-content}
[data-landing-desktop-nav]{display:none}
[data-landing-mobile-menu]{position:relative}
[data-landing-mobile-menu] summary{list-style:none;display:grid;place-items:center;width:44px;height:44px;cursor:pointer;font-size:24px;border:1px solid var(--hair);border-radius:8px}
[data-landing-mobile-menu] summary::-webkit-details-marker{display:none}
[data-landing-mobile-menu] nav{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;max-width:calc(100vw - 28px);padding:8px;background:var(--card);border:1px solid var(--hair);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:1}
[data-landing-mobile-menu] nav a{display:block;padding:12px;font-size:14px}
[data-landing-actions]{grid-column:1 / -1;display:flex;align-items:stretch;gap:8px}
[data-landing-demo],[data-landing-trial]{display:flex;justify-content:center;align-items:center;text-align:center;min-height:44px;padding:8px 10px;border-radius:8px;text-decoration:none;font-size:12px;line-height:1.3;box-sizing:border-box}
[data-landing-demo]{flex:1;border:1px solid var(--hair2)}
[data-landing-trial]{flex:1.6;flex-wrap:wrap;column-gap:3px;background:var(--accent);color:var(--paper);border:1px solid var(--accent-dark);font-weight:600}
[data-landing-header] a:focus-visible,[data-landing-header] summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(min-width:980px){
  [data-landing-header]{display:flex;padding:12px 32px;gap:24px}
  [data-landing-desktop-nav]{display:flex;align-items:center;gap:16px;margin-left:auto;font-size:13px}
  [data-landing-mobile-menu]{display:none}
  [data-landing-actions]{gap:16px;flex:none}
  [data-landing-demo],[data-landing-trial]{flex:none;font-size:13px;white-space:nowrap}
  [data-landing-demo]{border:0;padding:0}
}

/* Канон 21.09: одна строка табов, широкая справка, ровные значки и границы. */
.rates-header__bar .rates-view[data-visible="false"]{display:none}
.ss-help-trigger{display:inline-grid;place-items:center;flex:none;width:22px;height:22px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--sub);font:13px/1 var(--f-body);cursor:pointer}
.ss-help-panel{box-sizing:border-box;width:calc(100vw - 64px);max-width:none;max-height:calc(100dvh - 64px);margin:auto;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);box-shadow:0 20px 80px #0003}
.ss-help-panel::backdrop{background:#0005}
.ss-help-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 28px;border-bottom:1px solid var(--hair);position:sticky;top:0;background:var(--card);z-index:1}
.ss-help-header h2{margin:0;font:600 22px/1.3 var(--f-body)}
.ss-help-content{padding:24px 28px;font:14px/1.6 var(--f-body)}
.ss-help-lead{max-width:90ch;margin:0 0 24px;color:var(--sub)}
.ss-help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:32px}
.ss-help-grid h3{font-size:16px;margin:0 0 14px}
.ss-help-list{padding-left:20px;margin:0;display:grid;gap:12px}
.ss-help-visuals figure{margin:0 0 24px;padding:16px;background:var(--hover);border:1px solid var(--hair);border-radius:8px}
.ss-help-visuals img,.ss-help-visuals svg{display:block;max-width:100%;height:auto}
.ss-help-visuals figcaption{font-size:12px;color:var(--muted);margin-top:12px}
.ss-help-steps{padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:12px}
.ss-help-steps li{flex:1;min-width:130px;display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:6px}
.ss-help-steps b{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark)}
.rates-workspace .rates-row__actions{align-items:center!important;gap:4px!important;border-left:0!important}
.rates-workspace .rates-row__actions>button{box-sizing:border-box;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 22px!important;width:22px!important;height:22px!important;min-height:22px!important;margin:0!important;padding:0!important;border:0;background:transparent;line-height:1!important;cursor:pointer;color:var(--muted)}
.rates-workspace .rates-row__actions svg{display:block;width:14px;height:14px;flex:none}
.rates-workspace .rates-row>span:first-child{align-items:center;justify-content:center;align-self:center}
.rates-workspace :is(.rates-categories,.rates-reference-categories) [draggable]{padding-block:calc(var(--rt-y) / 4)!important;min-height:24px!important}
.rates-resizable{position:relative}
.rates-resizer{position:absolute;top:0;bottom:0;width:12px;padding:0!important;border:0;background:transparent;cursor:col-resize;touch-action:none;z-index:8;border-radius:0!important}
.rates-resizer--right{right:-12px}.rates-resizer--left{left:-12px}
.rates-resizer:after{content:'';position:absolute;top:0;bottom:0;left:5px;width:2px;background:var(--line)}
.rates-resizer:hover:after,.rates-resizer:focus-visible:after{background:var(--accent-dark)}
@media(min-width:1301px){
.rates-layout{grid-template-columns:var(--panel-0,196px) minmax(0,1fr)}
.rates-layout[data-inspector="true"]{grid-template-columns:var(--panel-0,184px) minmax(0,1fr) var(--panel-2,330px)}
.rates-directory{grid-template-columns:var(--panel-0,240px) minmax(0,1fr)!important}
.rates-directory[data-inspector="true"]{grid-template-columns:var(--panel-0,210px) minmax(0,1fr) var(--panel-2,320px)!important}
.rates-companions__layout{grid-template-columns:var(--panel-0,minmax(0,1fr)) minmax(0,1fr) var(--panel-2,minmax(0,1.2fr))}
.rates-relations__layout{grid-template-columns:var(--panel-0,210px) minmax(0,1fr) var(--panel-2,minmax(300px,1fr))}
}
@media(max-width:1300px){.rates-resizer{display:none}}
@media(max-width:600px){.ss-help-panel{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.ss-help-header,.ss-help-content{padding:16px}.ss-help-grid{gap:24px}}

.rates-workspace :is(.rates-categories,.rates-reference-categories) .ss-tree-row{padding-block:calc(var(--rt-y) / 4)!important;min-height:24px!important}
.rates-workspace .rates-sheet [data-шапка]>div>div{padding-inline:var(--rates-row-x,7px)!important}
.rates-workspace .rates-sheet [data-шапка]>div>div>span:first-child{justify-content:center}

/* Роль темы: левое дерево — одна типографика во всех разделах. */
:root{--left-tree-font:var(--f-body);--left-tree-size:14px;--left-tree-line:1.4;--left-tree-weight:400;--left-tree-row:26px;--left-tree-y:3px;--left-tree-x:8px}
body :is(.app-shell,.ui-system) :is(.ss-left-tree.ss-left-tree,.ss-tree-row.ss-tree-row,.zk-tree.zk-tree),
body :is(.app-shell,.ui-system) :is(.ss-left-tree.ss-left-tree,.ss-tree-row.ss-tree-row,.zk-tree.zk-tree) :is(span,input,button,select,a){font-family:var(--left-tree-font)!important;font-size:var(--left-tree-size)!important;line-height:var(--left-tree-line)!important;font-weight:var(--left-tree-weight)!important;letter-spacing:normal!important}
body .ss-tree-row,body .rates-workspace :is(.rates-categories,.rates-reference-categories) .ss-tree-row{min-height:var(--left-tree-row)!important;padding-block:var(--left-tree-y)!important}
body .ss-tree-row>span:last-child{font-variant-numeric:tabular-nums}
.rates-categories>div:not(.rates-categories__title),.rates-reference-categories>div{box-sizing:border-box;width:100%!important;min-width:0;max-width:none!important}
.rates-picker-layout{grid-template-columns:var(--panel-0,180px) minmax(0,1fr)!important}
.rates-picker-tree{position:relative;min-width:0}
.rates-picker-tree>.rates-resizer--right{right:0}
@media(min-width:1251px){.rates-layout{grid-template-columns:var(--panel-0,196px) minmax(0,1fr)}.rates-layout[data-inspector="true"]{grid-template-columns:var(--panel-0,196px) minmax(0,1fr) var(--panel-2,330px)}.rates-layout .rates-resizer{display:block}}
@media(min-width:801px){.rates-picker-layout .rates-resizer{display:block}}
@media(max-width:600px){.rates-picker-layout{grid-template-columns:minmax(110px,35%) minmax(0,1fr)!important}}

/* Роль темы «Вкладки раздела»: текст, активная линия, без плашек. */
:root{--section-tab-font:var(--f-body);--section-tab-size:calc(11px * var(--fs,1));--section-tab-line:calc(1.2 * var(--lh,1));--section-tab-y:calc(3px * var(--space,1));--section-tab-x:calc(6px * var(--space,1));--section-tab-weight:600;--section-tab-intensity:65%}
.ss-section-tabs{display:flex;flex-wrap:wrap;min-width:0;gap:0!important;margin-bottom:0!important;border-bottom:1px solid var(--hair)!important;align-items:stretch!important}
body .ss-section-tab{display:flex;align-items:baseline;gap:var(--ui-body-x,8px);text-decoration:none;min-height:0;appearance:none;background:transparent!important;box-shadow:none!important;border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;margin:0 0 -1px!important;padding:var(--section-tab-y) var(--section-tab-x)!important;font-family:var(--section-tab-font)!important;font-size:var(--section-tab-size)!important;line-height:var(--section-tab-line)!important;font-weight:400!important;color:color-mix(in srgb,var(--ink) var(--section-tab-intensity),var(--card))!important;cursor:pointer;white-space:nowrap}
body .ss-section-tab[aria-current="page"]{color:var(--ink)!important;font-weight:var(--section-tab-weight)!important;border-bottom-color:var(--accent-dark)!important}
body .ss-section-tab:hover{color:var(--ink)!important}
.ss-section-tab:focus-visible{outline:2px solid var(--accent-dark);outline-offset:2px}
.ss-section-tools{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-body-x,8px);min-width:0;flex-wrap:wrap}
:is([data-screen-label],.ss-section-heading):has(>.ss-section-tools){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--ui-body-x,8px);row-gap:var(--ui-body-y,4px);align-items:start}
:is([data-screen-label],.ss-section-heading):has(>.ss-section-tools)>*{grid-column:1/-1;min-width:0}
:is([data-screen-label],.ss-section-heading)>.ss-section-tools{grid-column:2;grid-row:1;align-self:center}
:is([data-screen-label],.ss-section-heading):has(>.ss-section-tools)>.ss-section-tabs{grid-column:1;grid-row:1}
body .ss-tree-row{padding-inline:var(--left-tree-x)!important}
body .ss-tree-row[style*="22px"],body .ss-tree-row[style*="16px"]{padding-left:calc(var(--left-tree-x) + 14px)!important}
@media(max-width:750px){:is([data-screen-label],.ss-section-heading):has(>.ss-section-tools){grid-template-columns:minmax(0,1fr)}:is([data-screen-label],.ss-section-heading)>.ss-section-tools{grid-column:1;grid-row:2;justify-content:flex-start}}


/* Кабинет · компактная система v3. Образцы тех же компонентов — /ui. */
:is(.app-shell,.ui-system){
  --ui-page-x:calc(12px * var(--space,1));--ui-page-y:calc(10px * var(--space,1));--ui-control:calc(24px * var(--space,1));--ui-row:calc(20px * var(--space,1));--ui-column-gap:calc(8px * var(--space,1));
  --ui-original-ink:var(--ink);--ui-original-sub:var(--sub);--ui-original-muted:var(--muted);
  --left-tree-row:calc(20px * var(--space,1));
  font-family:var(--f-body);font-size:calc(11px * var(--fs,1));line-height:calc(1.35 * var(--lh,1));
  background:var(--paper);color:var(--ink);background-image:none;
}
:is(.app-shell,.ui-system) :is(button,input,select,textarea){font-family:var(--f-body)}
:is(.app-shell,.ui-system) :is(.ss-button,.ss-search,.ss-control,.zk-button){min-height:var(--ui-control);padding:var(--ui-control-text-y) var(--ui-control-text-x)!important;font-size:var(--ui-control-text-size)!important;line-height:var(--ui-control-text-line)!important;font-family:var(--ui-control-text-font)!important;font-weight:var(--ui-control-text-weight)!important;border-radius:calc(var(--radius,8px) * .75)!important}
:is(.app-shell,.ui-system) :is(h1,h2,h3){font-family:var(--f-body)!important;letter-spacing:-.02em}
:is(.app-shell,.ui-system) h1{font-size:var(--rt-size,16px)!important;line-height:var(--rt-line,1.3)!important;font-weight:var(--rt-weight,600)!important;font-family:var(--rt-font,var(--f-body))!important}
:is(.app-shell,.ui-system) .ss-panel{border-radius:var(--radius,8px)!important;padding-bottom:6px!important;font-size:var(--rt-size,11px);line-height:var(--rt-line,1.35);font-family:var(--rt-font,var(--f-body))}
:is(.app-shell,.ui-system) .ss-panel__head{padding:var(--rt-y,4px) var(--rt-x,6px)!important;gap:10px!important;align-items:center!important}
:is(.app-shell,.ui-system) .ss-panel__head>div>div{font-size:var(--rt-size,11px)!important;line-height:var(--rt-line,1.35)!important;font-family:var(--rt-font,var(--f-body))!important}
:is(.app-shell,.ui-system) .ss-dialog{padding:var(--rt-y,10px) var(--rt-x,12px)!important;border-radius:var(--radius,8px)!important;font-size:var(--rt-size,11px);font-family:var(--rt-font,var(--f-body))}
:is(.app-shell,.ui-system) .ss-table-row{min-height:var(--ui-row)!important;padding:var(--rt-y,0px) var(--rt-x,5px)!important;gap:0 var(--ui-column-gap,8px)!important;font-size:var(--rt-size,10.5px)!important;line-height:var(--rt-line,1.1)!important;font-weight:var(--rt-weight,400)!important;font-family:var(--rt-font,var(--f-body))!important}
:is(.app-shell,.ui-system) .ss-table-row :is(span,input,select,button){font-size:inherit!important;line-height:inherit!important;font-family:inherit!important}
:is(.app-shell,.ui-system) .ss-table-head{padding:var(--rt-y,3px) var(--rt-x,5px)!important;gap:var(--ui-column-gap,8px)!important;font-size:var(--rt-size,11px)!important;line-height:var(--rt-line,1.3)!important;font-weight:var(--rt-weight,600)!important;font-family:var(--rt-font,var(--f-mono))!important;letter-spacing:0!important;text-transform:none!important;color:var(--sub)!important}
:is(.app-shell,.ui-system) .ss-table-head :is(span,button){font:inherit!important}
.app-shell .ss-navigation{font-size:calc(11px * var(--fs,1));line-height:calc(1.35 * var(--lh,1))}
.app-shell .ss-navigation a{min-width:0}
.app-shell .ss-navigation a>span{min-width:0}
.app-shell .ss-navigation>div:first-child{gap:4px!important;margin-bottom:10px!important}
.app-shell .ss-navigation>div:first-child>a{gap:4px!important}
.app-shell .ss-navigation>div:first-child>a>span:first-child{width:24px!important;height:24px!important}
.app-shell .ss-navigation img{width:24px;height:24px}
.app-shell .ss-navigation svg{flex-shrink:0}
.app-shell .ss-navigation [style*="font-size: 17px"]{font-size:14px!important}
.app-shell .ss-navigation [style*="font-size: 8px"]{font-size:8px!important;letter-spacing:0!important}
.app-shell [data-cabinet]{font-family:var(--f-body);font-size:calc(11px * var(--fs,1))}
/* Размеры наследуемых форм, которые ещё используют инлайн-токены. */
.app-shell [data-cabinet] :is(input,select,textarea):not([type=range]):not([type=checkbox]):not([type=radio]){font-family:var(--f-body);font-size:calc(11px * var(--fs,1));line-height:calc(1.35 * var(--lh,1))}
.app-shell [data-cabinet] [style*="font-family: var(--f-head)"]{font-family:var(--rt-font,var(--f-head))!important}
.app-shell :is([data-screen-label],.ss-section-heading):has(>.ss-section-tools){row-gap:var(--ui-body-y,4px);column-gap:var(--ui-body-x,8px)}
.app-shell .rates-workspace{padding:var(--ui-page-y) var(--ui-page-x) 60px!important}
.app-shell :is(.rates-header,.rates-sheet__head,.rates-surface__head){gap:var(--ui-column-gap,8px)!important}
.app-shell :is(.rates-sheet__head,.rates-surface__head){padding:calc(5px * var(--space,1)) calc(7px * var(--space,1))!important}
.app-shell .rates-inspector{padding:var(--rt-y,4px) var(--rt-x,6px)!important}
@media(min-width:1251px){.app-shell .rates-layout{grid-template-columns:var(--panel-0,148px) minmax(0,1fr)}.app-shell .rates-layout[data-inspector="true"]{grid-template-columns:var(--panel-0,148px) minmax(0,1fr) var(--panel-2,250px)}}
:is(.app-shell,.ui-system) :is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ui-system{min-height:100dvh;padding:28px clamp(16px,4vw,64px) 90px}
.ui-system__top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}
.ui-system__top a{color:var(--sub);text-decoration:none}
.ui-system__intro{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:24px}
.ui-system__intro h1{font-size:var(--rt-size,16px)!important;margin:0 0 var(--ui-body-x,8px)}
.ui-system__intro p{color:var(--muted);margin:0;max-width:500px;line-height:1.6}
.ui-system__badge{border:1px solid var(--hair);border-radius:20px;padding:6px 10px;white-space:nowrap;color:var(--sub)}
.ui-system__grid{display:grid;grid-template-columns:1.7fr 1fr;gap:18px;margin-top:20px;align-items:start}
.ui-system__stack{display:grid;gap:18px}
.ui-system__sample{padding:14px;display:grid;gap:12px}
.ui-system__workspace{display:grid;grid-template-columns:160px minmax(0,1fr);gap:12px}
.ui-system__toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ui-system__swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ui-system__swatch{height:42px;border:1px solid var(--hair);border-radius:6px;margin-bottom:6px}
.ui-system__roles{display:grid;gap:0}
.ui-system__roles>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--hair)}
.ui-system__roles small{color:var(--muted);font-size:calc(11px * var(--fs,1))}
@media(max-width:800px){.ui-system__grid{grid-template-columns:minmax(0,1fr)}.ui-system__intro{align-items:start;flex-direction:column}.ui-system__workspace{grid-template-columns:120px minmax(0,1fr)}}
@media(pointer:coarse){:is(.app-shell,.ui-system){--ui-control:max(36px,calc(24px * var(--space,1)));--ui-row:max(32px,calc(20px * var(--space,1)));--left-tree-row:max(32px,calc(20px * var(--space,1)))}:is(.app-shell,.ui-system) input:not([type=range]){font-size:16px!important}}
:is(.app-shell,.ui-system) :is(.ss-table-row,.ss-button,.ss-search){box-sizing:border-box}
.app-shell :where([data-cabinet]) :is(input,select,textarea):not([type=range]):not([type=checkbox]):not([type=radio]){font-size:calc(11px * var(--fs,1))!important;line-height:calc(1.35 * var(--lh,1));font-family:var(--f-body)}
.app-shell :is(.ss-panel,.ss-dialog) :is(label,p,[style*="font-size: 14px"],[style*="font-size: 13px"]){font-size:var(--rt-size,11px)!important;line-height:var(--rt-line,1.35)!important;font-family:var(--rt-font,var(--f-body))!important}
@media(pointer:coarse){.app-shell :where([data-cabinet]) input:not([type=range]){font-size:16px!important}}
/* Плотность v3: компактные действия в строках и общие панели. */
.app-shell .rates-workspace .rates-row__actions>button{flex-basis:20px!important;width:20px!important;height:20px!important;min-height:20px!important}
.app-shell .rates-workspace .rates-row__actions svg{width:12px;height:12px}
.app-shell .ss-navigation svg{width:15px;height:15px}
.app-shell .ss-navigation [title="Создать смету"] svg{width:16px;height:16px}
.app-shell .ss-navigation>div:first-child>a>span:first-child{width:20px!important;height:20px!important}
.app-shell .ss-navigation img{width:20px;height:20px}
.app-shell .ss-navigation>div:first-child>[title]{width:22px!important;height:22px!important}
.app-shell .rates-toolbar button{min-height:24px;padding:calc(3px * var(--space,1)) calc(6px * var(--space,1));font-size:calc(11px * var(--fs,1))!important}
.app-shell .rates-toolbar input{font-size:calc(11px * var(--fs,1))!important;padding:calc(3px * var(--space,1)) calc(6px * var(--space,1))!important}
:is(.app-shell,.ui-system) .ss-panel{padding-bottom:4px!important}
:is(.app-shell,.ui-system) .ss-panel__head{gap:6px!important}
@media(pointer:coarse){.app-shell .rates-workspace .rates-row__actions>button{width:28px!important;height:28px!important;min-height:28px!important;flex-basis:28px!important}}

/* Админский отчёт: виджет в углу, без полосы и отступа над кабинетом. */
.ss-pulse{position:fixed;left:8px;bottom:8px;z-index:200;color:var(--muted);font:11px/1.4 var(--f-mono)}
.ss-pulse__toggle{display:grid;place-items:center;width:26px;height:26px;padding:0;border:1px solid var(--hair);border-radius:6px;background:var(--card);color:var(--muted);cursor:pointer;box-shadow:0 2px 8px #0000000a}
.ss-pulse__toggle:hover,.ss-pulse__toggle[aria-expanded=true]{color:var(--accent);border-color:var(--accent)}
.ss-pulse__report{position:absolute;left:0;bottom:34px;width:min(900px,calc(100vw - 16px));max-height:min(65vh,580px);display:flex;flex-direction:column;background:var(--card);border:1px solid var(--hair);border-radius:8px;box-shadow:0 8px 32px #0000001a;overflow:hidden}
.ss-pulse__header{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--hair)}
.ss-pulse__header strong{flex:1;color:var(--ink);font-family:var(--f-body);font-size:12px}
.ss-pulse__header button{border:0;background:transparent;color:var(--muted);cursor:pointer;font:inherit;padding:3px 6px}
.ss-pulse__header .ss-pulse__close{width:26px;height:26px;padding:0;font:20px/1 var(--f-body)}
.ss-pulse__summary{display:flex;flex-wrap:wrap;gap:6px 12px;padding:8px 10px 4px;color:var(--ink);overflow-wrap:anywhere}
.ss-pulse__totals{padding:0 10px 8px;border-bottom:1px solid var(--hair);overflow-wrap:anywhere}
.ss-pulse__entries{padding:6px 10px 10px;overflow:auto;min-height:0}
.ss-pulse__entries>div{min-width:620px}
.ss-pulse button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(pointer:coarse){.ss-pulse__toggle{width:34px;height:34px}.ss-pulse__report{bottom:42px}}

/* Центрированный первый экран; настройки открываются в модальном окне. */
.landing-constructor .landing-constructor__heading{text-align:center;padding:clamp(48px,8vw,100px) 24px 48px}
.landing-constructor .landing-constructor__layout{display:block;max-width:1120px;margin:auto}
.landing-constructor .landing-constructor__sheet{padding:20px clamp(12px,3vw,40px)}
.landing-design-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:24px 20px 56px;max-width:1000px;margin:auto}
.landing-design-actions button{border:1px solid var(--hair2);background:var(--card);color:var(--ink);border-radius:6px;padding:9px 14px;cursor:pointer;font:12px var(--f-body)}
.landing-design-actions .landing-design-open{background:var(--ink);color:var(--card)}
.landing-design-dialog{width:min(760px,calc(100vw - 32px));max-height:85dvh;padding:0;border:1px solid var(--hair);border-radius:12px;background:var(--card);color:var(--ink);box-shadow:0 24px 100px #0004;overflow:hidden}
.landing-design-dialog::backdrop{background:#18201c80;backdrop-filter:blur(5px)}
.landing-design-dialog__head{display:flex;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--hair)}
.landing-design-dialog__head h2{flex:1;margin:0;font-size:18px;font-weight:500}
.landing-design-dialog__head button{width:32px;height:32px;border:0;background:none;color:inherit;font-size:26px;cursor:pointer}
.landing-design-dialog__body{padding:20px;max-height:calc(85dvh - 70px);overflow:auto;box-sizing:border-box}

/* Тема компании и роли виджета используются рабочими элементами. */
:is(.app-shell,.ui-system) :is(.ss-table-head,.ss-panel__head){letter-spacing:calc(var(--tracking,.08em) - .08em)!important}
:is(.app-shell,.ui-system) :is(.ss-panel,.ss-dialog,.ss-search,.ss-button,.rates-sheet,.rates-surface,.rates-inspector){border-width:var(--border,1px)!important}
:is(.app-shell,.ui-system) :is(.ss-table-row,.rates-row,.ss-table-head,.ss-panel__head){border-bottom-width:var(--border,1px)!important}
:is(.app-shell,.ui-system) :is(.ss-dialog,.rates-inspector){box-shadow:var(--shadow)}
:is(.app-shell,.ui-system) :is(.ss-left-tree,.ss-tree-row,.zk-tree){
  --ink:color-mix(in srgb,var(--ui-original-ink) var(--left-tree-intensity,100%),var(--card));
  --sub:color-mix(in srgb,var(--ui-original-sub) var(--left-tree-intensity,100%),var(--card));
  --muted:color-mix(in srgb,var(--ui-original-muted) var(--left-tree-intensity,100%),var(--card));
}
@media(pointer:coarse){.rates-workspace{--rates-actions-width:60px}}
[data-panel-stacked="true"] .rates-resizer{display:none!important}
[data-panel-key]{min-width:0}
[data-panel-layout="procurement"] .zk-tree>.rates-resizer--right{right:0}
.demo-preview image-slot{display:block;width:100%;height:100%;position:relative;overflow:hidden;border-radius:12px}
.demo-preview image-slot[shape="rect"]{border-radius:0}
.demo-preview image-slot:is([shape="circle"],[shape="pill"]){border-radius:50%}

/* Общие роли: основной текст, элементы форм, действие меню. */
:is(.app-shell,.ui-system){
  --ui-body-font:var(--f-body);--ui-body-size:calc(11px * var(--fs,1));--ui-body-line:calc(1.35 * var(--lh,1));--ui-body-weight:400;--ui-body-y:calc(4px * var(--space,1));--ui-body-x:calc(8px * var(--space,1));
  --ui-control-text-font:var(--f-body);--ui-control-text-size:calc(11px * var(--fs,1));--ui-control-text-line:calc(1.35 * var(--lh,1));--ui-control-text-weight:500;--ui-control-text-y:calc(3px * var(--space,1));--ui-control-text-x:calc(6px * var(--space,1));
  font-family:var(--ui-body-font);font-size:var(--ui-body-size);line-height:var(--ui-body-line);font-weight:var(--ui-body-weight);
}
.app-shell [data-cabinet]{font-family:var(--ui-body-font);font-size:var(--ui-body-size);line-height:var(--ui-body-line)}
.ss-section-tab__label{display:grid}
.ss-section-tab__label>span{grid-area:1/1;font:inherit}
.ss-section-tab__label>.ss-section-tab__measure{font-weight:var(--section-tab-weight);visibility:hidden}
.ss-section-tab__count{font:inherit;font-variant-numeric:tabular-nums;color:var(--muted)}
.ss-section-tabs__error{flex:1 1 160px;align-self:center;text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--danger-dark);font-size:var(--ui-body-size,11px)}
.ss-section-tab:not(button):not(a){cursor:default}
.app-shell .rates-header{padding:0!important;background:transparent;border:0}
.app-shell .rates-header .rates-header__bar{margin:0!important;padding:0}
.app-shell .rates-header__bar .rates-view[data-visible="false"]{display:block;visibility:hidden;pointer-events:none}
.app-shell .rates-body{padding:var(--ui-body-y) 0 0!important}
.ss-chat-tabs{padding:var(--ui-page-y) var(--ui-page-x) 0}
.ss-sidebar-action{box-sizing:border-box;width:100%;display:flex;align-items:center;justify-content:flex-start;gap:var(--ui-body-x,8px);min-height:var(--ui-control,24px);padding:var(--ui-control-text-y,3px) var(--ui-control-text-x,6px);border:0;border-radius:var(--radius,8px);background:var(--accent-dark);color:var(--paper);box-shadow:0 2px 10px rgba(23,26,24,.16);font-family:var(--ui-control-text-font,var(--f-body));font-size:var(--ui-control-text-size,11px);font-weight:600;line-height:var(--ui-control-text-line,1.35);text-align:left;text-decoration:none;cursor:pointer}
.ss-sidebar-action:hover{background:var(--accent-darker)}
.ss-sidebar-action:focus-visible{outline:2px solid var(--accent-dark);outline-offset:3px}
.ss-sidebar-action svg{width:16px;height:16px;flex:none}
.ss-sidebar-action[data-collapsed="true"]{justify-content:center;padding-inline:0}
.ss-navigation>.ss-sidebar-action{margin-bottom:var(--ui-body-x,8px)}
.ss-brand{display:flex;flex-direction:column;gap:1px;min-width:0;font-family:var(--ui-body-font,var(--f-body))}
.ss-brand strong{font-size:var(--ui-body-size,11px);font-weight:600;line-height:1.2}
.ss-brand>span{font-size:calc(9px * var(--fs,1));line-height:1.35;color:var(--muted)}
.ui-system__menu-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-body-x);max-width:340px}
@media(max-width:750px){.ss-section-heading>.ss-section-tools{justify-content:flex-start}.ss-brand>span{overflow-wrap:anywhere}}

:is(.app-shell,.ui-system) select.ss-control{padding-right:calc(var(--ui-control-text-x) + 14px)!important}
:is(.app-shell,.ui-system) :is(.ss-table-row,.rates-row) .ss-control{min-height:0;font:inherit!important;padding:0!important}
:is(.app-shell,.ui-system) .ss-sidebar-action{font-weight:var(--ui-control-text-weight,600)}
@media(pointer:coarse){:is(.app-shell,.ui-system) :is(.ss-control,.zk-button,.ss-sidebar-action){min-height:36px}.app-shell .ss-control{font-size:16px!important}}

.app-shell [data-cabinet],.ui-system> :not(style){--ink:color-mix(in srgb,var(--ui-original-ink) var(--ui-body-intensity,100%),var(--card))}
:is(.app-shell,.ui-system) :is(.ss-button,.ss-search,.ss-control,.zk-button,.ss-sidebar-action){-webkit-text-fill-color:color-mix(in srgb,currentColor var(--ui-control-text-intensity,100%),transparent)}

/* Связи расценок: дерево / основной товар / текущие связи над подбором. */
.rates-links-layout{display:grid;grid-template-columns:var(--panel-tree,170px) minmax(200px,1fr) var(--panel-links,minmax(300px,1.2fr));gap:var(--ui-column-gap);align-items:stretch;min-width:0}
.rates-links-layout>.rates-links-tree{grid-column:auto;position:relative;top:auto;max-height:none;overflow:visible;padding:0!important;border:0}
.rates-links-tree>.rates-section-label{padding:var(--left-tree-y) var(--left-tree-x)!important;margin-bottom:var(--ui-body-x)}
.rates-links-layout>.rates-relations__source{display:flex;flex-direction:column;gap:var(--ui-body-y);min-height:0;max-height:max(580px,calc(100dvh - 115px));padding:var(--ui-body-x)}
.rates-links-layout>.rates-relations__source>.ss-panel{flex:1;min-height:0;overflow:auto}
.rates-links-layout .rates-surface__head{min-height:0;margin:0 0 var(--ui-body-y);padding:0 0 var(--ui-body-y)!important}
.app-shell .rates-links-layout .rates-surface__head h2{font-family:var(--ui-body-font)!important;font-size:var(--ui-body-size)!important;font-weight:600!important;line-height:var(--ui-body-line)!important;padding:0!important}
.rates-links-stack{position:relative;display:grid;grid-template-rows:minmax(120px,var(--linked-height,210px)) 10px minmax(260px,1fr);height:max(580px,calc(100dvh - 115px));min-width:0;max-height:900px}
.rates-links-stack>section{min-width:0;min-height:0;overflow:auto;padding:var(--ui-body-x);font:var(--ui-body-weight) var(--ui-body-size)/var(--ui-body-line) var(--ui-body-font)}
.rates-links-stack .rates-companions__links{margin-top:var(--ui-body-y);max-height:none;overflow:visible}
.rates-links-stack .rates-companions__empty{font:inherit;line-height:1.5;color:var(--muted);margin:var(--ui-body-x) 0}
.rates-links-divider{width:100%;height:10px;border:0;padding:0;position:relative;background:transparent;cursor:row-resize;touch-action:none}
.rates-links-divider:after{content:'';position:absolute;left:calc(50% - 25px);right:calc(50% - 25px);top:4px;height:2px;background:var(--hair2);border-radius:2px}
.rates-links-divider:hover:after,.rates-links-divider:focus-visible:after{background:var(--accent)}
.rates-links-divider:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}
.rates-links-selected{display:flex;justify-content:space-between;align-items:baseline;gap:var(--ui-body-x);padding-block:var(--ui-body-y);border-bottom:1px solid var(--hair)}
.rates-links-selected>strong{font-weight:600;min-width:0;overflow-wrap:anywhere}.rates-links-selected>span{color:var(--muted)}
.rates-analog-link{display:grid;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:var(--ui-body-x);border-bottom:1px solid var(--hair);min-height:var(--ui-row)}
.rates-analog-link>span:first-child{white-space:normal;overflow-wrap:anywhere}.rates-analog-link>span:nth-child(2){color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.rates-links-stack .rates-companions__link{grid-template-columns:minmax(0,1fr) 60px auto 24px;gap:6px!important}
.rates-relations__existing>summary{cursor:pointer;padding:var(--ui-body-y) 0;font:600 var(--ui-body-size)/var(--ui-body-line) var(--ui-body-font)}
.rates-relations__existing[open]>summary{margin-bottom:var(--ui-body-x)}
@media(min-width:901px){.rates-links-layout>.rates-links-tree>.rates-resizer,.rates-links-stack>.rates-resizer{display:block}}
@media(max-width:900px){.rates-links-layout{grid-template-columns:150px minmax(0,1fr)}.rates-links-stack{grid-column:1/-1;height:650px}.rates-links-layout>.rates-relations__source{max-height:400px}}
@media(max-width:540px){.rates-links-layout{grid-template-columns:minmax(0,1fr)}.rates-links-layout>.rates-links-tree{max-height:180px;overflow:auto}.rates-links-stack{height:680px}}
/* Справочники: один внешний отступ, без второго отступа внутри подписи строки. */
.app-shell .rates-directory__list{padding:var(--left-tree-y) var(--left-tree-x)!important}
.app-shell .rates-directory__list .rates-surface__head{padding:var(--left-tree-y) 0!important;margin:0 0 var(--ui-body-y);min-height:var(--left-tree-row)}
.app-shell .rates-directory__list .rates-surface__head h2{font:600 var(--left-tree-size)/var(--left-tree-line) var(--left-tree-font)!important;padding:0!important}
.rates-directory-row{gap:var(--left-tree-x)!important;border-radius:var(--radius)!important}
.rates-directory-row>span:first-child{padding:0!important}.rates-directory-row>input{padding:0!important}
.rates-directory__create{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-body-y);margin-top:var(--ui-body-x)}
.rates-directory__create>input{flex:1 1 100%!important;width:100%;min-width:0;font-size:var(--left-tree-size)!important}
.rates-directory__help{margin-top:var(--ui-body-x);font:400 var(--left-tree-size)/1.5 var(--left-tree-font);color:var(--muted)}
.rates-directory__help>summary{cursor:pointer}.rates-directory__help p{margin:var(--ui-body-y) 0}
/* Карточка расценки: заголовок / подписи / поля. Наследование не уничтожает иерархию. */
.app-shell .rates-inspector{font-family:var(--rt-font,var(--f-body));font-size:var(--rt-size,11px);line-height:var(--rt-line,1.35);font-weight:var(--rt-weight,400);padding:calc(var(--rt-y,4px) + 4px) calc(var(--rt-x,6px) + 4px)!important}
.rates-inspector :is(input,select,textarea){font-family:inherit}
.app-shell [data-cabinet] .rates-inspector textarea.rates-inspector__name{font:600 calc(var(--rt-size,11px) * 1.2)/1.35 var(--rt-font,var(--f-body))!important;padding:var(--rt-y,4px) 0!important;border-radius:0;min-width:0}
.rates-inspector__top{margin-bottom:var(--rt-y);font:inherit}.rates-inspector__top>span{font:inherit}
.rates-inspector__identity{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--ui-body-x);margin-top:var(--ui-body-y)}
.rates-inspector__identity label,.rates-inspector__price-fields label{display:flex;flex-direction:column;gap:var(--ui-body-y);min-width:0}
.rates-inspector__identity label>span:first-child,.rates-inspector__price-fields label>span:first-child{color:var(--muted);font-size:var(--rt-size,11px);font-weight:400}
.rates-inspector__identity select{max-width:100%;font-size:var(--rt-size,11px)!important;line-height:var(--rt-line,1.35)!important}
.rates-inspector__pricing h3{display:flex;justify-content:space-between;align-items:baseline;gap:var(--ui-body-x);margin:var(--ui-body-x) 0;font:600 var(--rt-size,11px)/var(--rt-line,1.35) var(--rt-font,var(--f-body))!important;letter-spacing:0}
.rates-inspector__pricing h3>span{font-weight:400;color:var(--muted)}
.rates-inspector__price-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--ui-body-x)}
.rates-inspector__price-fields input{box-sizing:border-box;min-height:var(--ui-control);font:500 var(--rt-size,11px)/var(--rt-line,1.35) var(--rt-font,var(--f-body))!important;border:1px solid var(--hair)!important;background:var(--paper)!important;padding:var(--rt-y,4px) var(--rt-x,6px)!important;font-variant-numeric:tabular-nums}
.rates-inspector__price-fields .rates-inspector__sale input{color:var(--accent-dark)!important;border-color:var(--accent-soft-bd)!important;background:var(--accent-soft)!important;font-weight:600!important}
.rates-inspector__price-fields .rates-inspector__markup{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 90px;align-items:center}
.rates-inspector__relations{margin:var(--ui-body-y) 0;padding:var(--ui-body-y) 0;border-top:1px solid var(--hair)}
.rates-inspector__heading{display:flex;align-items:center;gap:var(--ui-body-y);margin:var(--ui-body-y) 0}
.rates-inspector__toggle{display:flex;flex:1;gap:var(--ui-body-y);align-items:center;min-width:0;text-align:left;border:0;background:none;padding:var(--rt-y,4px) 0;color:var(--ink);cursor:pointer;font:600 var(--rt-size,11px)/var(--rt-line,1.35) var(--rt-font,var(--f-body))}
.rates-inspector__toggle>span:first-child{width:14px;flex:none;color:var(--muted)}
.rates-inspector__count{margin-left:auto;font-weight:400;color:var(--muted)}
.rates-inspector__section>summary{font:600 var(--rt-size,11px)/var(--rt-line,1.35) var(--rt-font,var(--f-body));padding:var(--rt-y,4px) 0}
.rates-inspector__section>summary>span{font-weight:400;font-size:var(--rt-size,11px);overflow-wrap:anywhere}
.rates-inspector__toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.app-shell [data-cabinet] .rates-inspector :is(input,select,textarea):not(.rates-inspector__name){font-size:var(--rt-size,11px)!important;line-height:var(--rt-line,1.35)!important;font-family:var(--rt-font,var(--f-body))!important}
.rates-inspector__toggle>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.rates-links-layout .rates-relations__source .rates-row>span:nth-child(2){font-size:inherit!important}
/* Конструкция — метка узлов и её существующие расчётные связи. */
[data-cabinet] .construction-volumes__layout {
  display:grid;
  grid-template-columns:var(--panel-chapters,140px) var(--panel-tags,154px) minmax(260px,1fr) var(--panel-nodes,350px);
  gap:12px;
  align-items:start;
}
[data-cabinet] .construction-volumes__layout:not(:has(.construction-volumes__tags)) {
  grid-template-columns:var(--panel-chapters,140px) minmax(260px,1fr) var(--panel-nodes,350px);
}
[data-cabinet] .construction-volumes__layout > div { min-width:0; }
[data-cabinet] .construction-volumes__toolbar {
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  min-height:32px; margin-bottom:6px;
  font:var(--rt-weight,400) var(--rt-size,var(--ui-body-size))/var(--rt-line,1.4) var(--rt-font,var(--f-body));
}
[data-cabinet] .construction-rules { padding:0 10px; }
[data-cabinet] .construction-rule { padding:7px 0; border-top:1px dotted var(--hair); }
[data-cabinet] .construction-rule:first-child { border-top:0; padding-top:0; }
[data-cabinet] .construction-rule__heading { display:flex; align-items:baseline; gap:8px; margin-bottom:5px; }
[data-cabinet] .construction-rule__heading > button,
[data-cabinet] .construction-rule__source {
  border:0; background:transparent; padding:0; min-width:0; text-align:left; color:var(--ink);
  font:inherit; cursor:pointer;
}
[data-cabinet] .construction-rule__heading > button { flex:1; font-weight:600; }
[data-cabinet] .construction-rule__heading > span,
[data-cabinet] .construction-rule__unit { color:var(--muted); white-space:nowrap; }
[data-cabinet] .construction-rule__source:hover,
[data-cabinet] .construction-rule__heading > button:hover { color:var(--accent-dark); }
[data-cabinet] .construction-rule__source small { display:block; font:inherit; color:var(--muted); }
[data-cabinet] .construction-rule__source:disabled { color:var(--muted); cursor:default; }
[data-cabinet] .construction-rule__formula {
  display:grid; grid-template-columns:minmax(70px,1fr) 10px 62px 40px 20px;
  gap:5px; align-items:center; padding:3px 0;
}
[data-cabinet] .construction-rule__formula > :last-child { justify-self:center; }
[data-cabinet] .construction-rule__note { margin:3px 0 6px; color:var(--muted); font:inherit; }
[data-cabinet] .construction-rule > span:last-child { margin-top:4px; }
[data-cabinet] .construction-volumes__row {
  font-family:var(--rt-font,var(--f-body)); font-size:var(--rt-size,var(--ui-body-size));
  line-height:var(--rt-line,1.1); padding:var(--rt-y,0px) var(--rt-x,5px);
}
@media (max-width:1279px) {
  [data-cabinet] .construction-volumes__layout { grid-template-columns:var(--panel-chapters,120px) var(--panel-tags,140px) minmax(0,1fr); }
  [data-cabinet] .construction-volumes__layout:not(:has(.construction-volumes__tags)) { grid-template-columns:var(--panel-chapters,120px) minmax(0,1fr); }
  [data-cabinet] .construction-volumes__chapters,
  [data-cabinet] .construction-volumes__tags { grid-row:1 / span 2; }
  [data-cabinet] .construction-volumes__rules { grid-column:-2; }
}
@media (max-width:760px) {
  [data-cabinet] .construction-volumes__layout,
  [data-cabinet] .construction-volumes__layout:not(:has(.construction-volumes__tags)) { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
  [data-cabinet] .construction-volumes__chapters,
  [data-cabinet] .construction-volumes__tags { grid-row:auto; }
  [data-cabinet] .construction-volumes__measurements,
  [data-cabinet] .construction-volumes__rules { grid-column:1 / -1; }
}
