/* «Цены и закупки»: страница контрактов ЕИС. Токены и шапка общие с сайтом (site-refinement.css, rmi-ui.css).
   Единицы окна не используются: под html{zoom} на широких экранах они растут вместе с масштабом. */
.contracts-page main{max-width:var(--rmi-wide,1600px);margin:0 auto;padding:0 calc(var(--rmi-gutter,64px)/2) 56px;color:var(--rmi-ink,#1f3a5a)}
/* Вводный блок: заголовок слева, три факта справа. */
.contracts-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.9fr);gap:24px 48px;align-items:center;margin:4px 0 18px}
.contracts-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 10px;font:600 13px/1.4 var(--rmi-font);letter-spacing:.04em;text-transform:uppercase;color:var(--rmi-muted,#5a6d82)}
.contracts-eyebrow .rmi-state{display:inline-flex;align-items:center;gap:5px;font:600 10px/1.2 var(--rmi-font);letter-spacing:.05em;text-transform:uppercase;color:#8a5a10;background:#fff4dc;border:1px solid #f0d6a0;border-radius:999px;padding:3px 8px 3px 7px}
.contracts-eyebrow .rmi-state::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.contracts-hero h1{font-size:clamp(32px,3.2vw,44px);line-height:1.08;letter-spacing:-.03em;margin:0;color:var(--rmi-ink-strong,#17293d)}
.contracts-hero h1 span{display:block;font-weight:500;color:var(--rmi-blue,#2f5a85)}
.contracts-lead{margin:14px 0 0;color:var(--rmi-muted,#5a6d82);font-size:16px;line-height:1.6;max-width:62ch}
.contracts-base{display:flex;flex-wrap:wrap;gap:8px 10px;margin:16px 0 0;font-size:13px;color:var(--rmi-muted)}
.contracts-base span{display:inline-flex;align-items:baseline;gap:5px;padding:6px 12px;border-radius:999px;background:#fff;border:1px solid var(--rmi-line,#e1e8f0);box-shadow:var(--rmi-shadow-1,0 1px 2px #1b304a0d)}
.contracts-base b{font-size:15px;color:var(--rmi-ink-strong,#17293d);font-variant-numeric:tabular-nums}
.contracts-hero-facts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.contracts-hero-facts li{display:flex;align-items:center;gap:14px;padding:11px 14px;border:1px solid var(--rmi-line,#e1e8f0);border-radius:14px;background:#ffffffd9;font-size:14px;line-height:1.4;color:var(--rmi-ink)}
.contracts-hero-facts b{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#edf3fa,#dde8f4);color:var(--rmi-blue,#2f5a85);font:800 15px/1 var(--rmi-font);letter-spacing:-.02em}
.contracts-hero-facts li:nth-child(3) b{font-size:11px;letter-spacing:-.08em}
.contracts-warn{display:block;background:#fff8e8;border:1px solid #f1d39a;border-left:4px solid #e3a93a;border-radius:10px;padding:9px 14px;font-size:14px;line-height:1.5;margin:0 0 18px;color:#5c4a24}
.contracts-warn strong{color:#8a5a10}
/* Поисковая сцена в стиле главной: тёмно-синяя панель, белое поле, фильтры-чипы. */
.contracts-stage{position:relative;overflow:hidden;background:radial-gradient(ellipse at 92% -30%,#ffffff2e,transparent 55%),linear-gradient(135deg,#2a4b72 0%,#345f8d 55%,#3e70a2 100%);border:1px solid #27466b;border-radius:20px;padding:22px 24px 18px;margin:0 0 22px;box-shadow:0 18px 44px #1b304a2e;color:#fff}
.contracts-stage-label{display:block;font:600 14px/1.4 var(--rmi-font);color:#e6eef8;margin:0 0 10px}
.contracts-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:stretch;position:relative}
.contracts-input{display:flex;align-items:center;gap:12px;border:2px solid #fff;border-radius:14px;padding:0 16px;background:#fff;box-shadow:0 6px 18px #0d203a33}
.contracts-input:focus-within{box-shadow:0 0 0 4px #9dc1ea80,0 6px 18px #0d203a33}
.contracts-input svg{flex:none;color:#5a6d82}
.contracts-input input{flex:1;min-width:0;border:0;outline:0;font:500 18px/1.4 var(--rmi-font);padding:15px 0;background:transparent;color:var(--rmi-ink)}
.contracts-input input::placeholder{color:#7d8ea1;font-weight:400}
.contracts-search button[type=submit]{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--rmi-blue,#2f5a85);border:2px solid #fff;border-radius:14px;padding:0 24px;font:700 16px var(--rmi-font);cursor:pointer;min-height:56px;box-shadow:0 6px 18px #0d203a33;transition:transform .15s,background-color .15s}
.contracts-search button[type=submit]:hover{background:#eaf1f9;transform:translateY(-1px)}
.contracts-search button[type=submit] span{font-size:19px;line-height:1}
[data-busy] .contracts-search button[type=submit]{opacity:.7;pointer-events:none}
.contracts-filters{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;align-items:center;position:relative}
.contracts-filters label{display:inline-flex;align-items:center;gap:7px;box-sizing:border-box;height:38px;border:1px solid #ffffff40;border-radius:999px;padding:0 14px;font:500 13px/1 var(--rmi-font);background:#ffffff17;color:#c9d8ea;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s}
.contracts-filters label:hover{background:#ffffff33}
.contracts-filters label:has(input:checked){background:#fff;color:var(--rmi-blue);border-color:#fff}
.contracts-filters select{appearance:none;-webkit-appearance:none;border:0;margin:0;padding:0 18px 0 0;height:36px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right center;font:600 14px/1 var(--rmi-font);color:#fff;cursor:pointer;field-sizing:content;max-width:230px;text-overflow:ellipsis}
.contracts-filters select:focus-visible{outline:0}
.contracts-filters label:focus-within{border-color:#fff;box-shadow:0 0 0 3px #ffffff33}
.contracts-filters label.is-set{background:#ffffff2e;border-color:#ffffffa6;color:#e6eef8}
.contracts-filters select option{color:var(--rmi-ink)}
.contracts-filters input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:16px;height:16px;margin:0;border:1.5px solid #ffffffb3;border-radius:5px;background:transparent;display:grid;place-items:center;cursor:pointer;transition:background-color .15s,border-color .15s}
.contracts-filters input[type=checkbox]::after{content:"";width:8px;height:4px;border:2px solid var(--rmi-blue,#2f5a85);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.contracts-filters input[type=checkbox]:checked{background:var(--rmi-blue,#2f5a85);border-color:var(--rmi-blue,#2f5a85)}
.contracts-filters input[type=checkbox]:checked::after{opacity:1;border-color:#fff}
.contracts-filters label:has(input[type=checkbox]){color:#fff;font-weight:600}
.contracts-filters button{margin-left:auto;box-sizing:border-box;height:38px;border:1px solid #ffffff4d;background:transparent;border-radius:999px;padding:0 15px;font:600 13px/1 var(--rmi-font);color:#e6eef8;cursor:pointer}
.contracts-filters button:hover{background:#ffffff1f}
.contracts-examples{display:flex;flex-wrap:wrap;gap:6px 8px;margin:14px 0 0;font-size:13px;color:#cfdcec;align-items:center;position:relative}
.contracts-examples button{border:1px solid #ffffff33;background:#ffffff14;border-radius:999px;color:#fff;font:600 13px var(--rmi-font);cursor:pointer;padding:5px 11px;transition:background-color .15s}
.contracts-examples button:hover{background:#ffffff2e}
/* Разделы модуля: сегментный переключатель. */
.contracts-tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--rmi-line,#e1e8f0);border-radius:999px;background:#fff;margin:0 0 18px;flex-wrap:wrap;box-shadow:var(--rmi-shadow-1,0 1px 2px #1b304a0d)}
.contracts-tabs a{padding:8px 16px;font:600 14px var(--rmi-font);color:var(--rmi-muted);border-radius:999px;text-decoration:none;transition:background-color .15s,color .15s}
.contracts-tabs a[aria-current=page]{color:#fff;background:var(--rmi-blue,#2f5a85)}
.contracts-tabs a:not([aria-current]):hover{color:var(--rmi-ink);background:var(--rmi-blue-soft,#edf2f8)}
/* Пустое состояние: три шага вместо пустой таблицы. */
.contracts-intro{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 22px}
.contracts-intro article{position:relative;background:#fff;border:1px solid var(--rmi-card-edge,#d3dde8);border-radius:16px;padding:20px 20px 18px 20px;box-shadow:var(--rmi-raise,0 1px 2px #1b304a0d,0 8px 24px #1b304a0f)}
.contracts-intro-step{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--rmi-blue,#2f5a85);color:#fff;font:800 15px var(--rmi-font);margin:0 0 12px}
.contracts-intro h2{font-size:17px;margin:0 0 6px;letter-spacing:-.01em}
.contracts-intro p{margin:0;font-size:14px;line-height:1.55;color:var(--rmi-muted)}
/* Результаты. */
.contracts-panel{background:#fff;border:1px solid var(--rmi-card-edge,#d3dde8);border-radius:16px;box-shadow:var(--rmi-raise,0 1px 2px #1b304a0d,0 8px 24px #1b304a0f);padding:18px 20px;margin:0 0 18px}
.contracts-record{background:linear-gradient(135deg,#edf2f8,#f6f9fc);border:1px solid #c9d8e8;border-radius:14px;padding:14px 18px;margin:0 0 16px}
.contracts-record-head{display:flex;flex-direction:column;gap:2px}
.contracts-record-label{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--rmi-blue);font-weight:700}
.contracts-record p{margin:6px 0;color:var(--rmi-muted);font-size:14px}
.contracts-record-reset{font-size:14px;font-weight:600;color:var(--rmi-blue)}
.contracts-results-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;margin:0 0 14px}
.contracts-status{font-size:20px;font-weight:700;margin:0;min-height:22px;letter-spacing:-.01em}
.contracts-summary{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--rmi-muted);margin:0}
.contracts-relaxed{display:flex;align-items:center;gap:10px;margin:-4px 0 14px;padding:10px 14px;border-radius:12px;background:#fff7e6;border:1px solid #f3dfb4;color:#7a5410;font-size:14px;font-weight:500;line-height:1.45}
.contracts-relaxed::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:#d99a2b;box-shadow:0 0 0 3px #d99a2b2e}
.contracts-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0 0 16px}
.contracts-kpi{position:relative;background:#fff;border:1px solid var(--rmi-card-edge,#d3dde8);border-radius:14px;padding:14px 16px 12px 18px;min-width:0;overflow:hidden;box-shadow:var(--rmi-shadow-1,0 1px 2px #1b304a0d)}
.contracts-kpi::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:#9db8d6}
.contracts-kpi:first-child::before{background:var(--rmi-blue,#2f5a85)}
.contracts-kpi b{display:block;font-size:26px;line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;letter-spacing:-.02em;color:var(--rmi-ink-strong,#17293d)}
.contracts-kpi span{display:block;margin-top:3px;font-size:13px;color:var(--rmi-muted)}
.contracts-kpi small{display:block;font-size:12px;color:#2e7d4f;margin-top:4px}
.contracts-charts{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px;margin:0 0 18px}
.contracts-chart{background:#fff;border:1px solid var(--rmi-card-edge,#d3dde8);border-radius:14px;padding:14px 16px;min-width:0;box-shadow:var(--rmi-shadow-1,0 1px 2px #1b304a0d)}
.contracts-chart h3{margin:0 0 12px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--rmi-muted);font-weight:700}
.contracts-bars{display:flex;align-items:flex-end;gap:10px;height:130px;padding:20px 0 22px}
.contracts-bar{flex:1;background:linear-gradient(180deg,#b7cde4,#9db8d6);border-radius:6px 6px 2px 2px;position:relative;min-width:0;transition:height .4s}
.contracts-bar.is-last{background:linear-gradient(180deg,#3d6f9e,#2f5a85)}
.contracts-bar b{position:absolute;left:0;right:0;top:-19px;text-align:center;font-size:11px;font-weight:600;white-space:nowrap}
.contracts-bar i{position:absolute;left:0;right:0;bottom:-20px;text-align:center;font-size:11px;color:var(--rmi-muted);font-style:normal;white-space:nowrap}
.contracts-range{position:relative;height:14px;border-radius:7px;background:linear-gradient(90deg,#dbe7f3,#9db8d6 40%,#2f5a85 50%,#9db8d6 60%,#dbe7f3);margin:30px 0 32px}
.contracts-range span{position:absolute;top:-22px;font-size:12px;font-weight:600;transform:translateX(-50%);white-space:nowrap}
.contracts-range em{position:absolute;top:18px;font-size:11px;color:var(--rmi-muted);font-style:normal;transform:translateX(-50%);white-space:nowrap}
.contracts-chart-note{font-size:13px;color:var(--rmi-muted);margin:0}
.contracts-list{list-style:none;margin:0;padding:0;font-size:14px}
.contracts-list li{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed #e1e8f0}
.contracts-list li.is-supplier span{color:var(--rmi-muted)}
.contracts-list li b{font-variant-numeric:tabular-nums}
.contracts-table-panel{padding:0;overflow:hidden}
.contracts-grid{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}
.contracts-grid th{position:sticky;top:0;z-index:1;text-align:left;font-size:12px;letter-spacing:.04em;text-transform:uppercase;background:#f3f6fa;border-bottom:2px solid var(--rmi-blue);padding:12px 16px;color:var(--rmi-muted)}
.contracts-grid th:nth-child(1){width:38%}.contracts-grid th:nth-child(2){width:17%}.contracts-grid th:nth-child(3){width:20%}
.contracts-grid td{padding:14px 16px;border-bottom:1px solid #e1e8f0;vertical-align:top;overflow-wrap:anywhere}
.contracts-grid tbody tr:last-child td{border-bottom:0}
.contracts-grid tbody tr:hover td{background:#f8fafc}
.contracts-name{font-weight:600;display:block;margin:0 0 4px;font-size:15px}
.contracts-sub{display:block;color:var(--rmi-muted);font-size:13px;margin:2px 0}
.contracts-link{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:12px;border-radius:999px;padding:3px 9px 3px 8px;border:1px solid var(--rmi-line-strong);background:#f4f7fa;color:var(--rmi-muted);font-weight:600}
.contracts-link::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.contracts-link.is-number,.contracts-link.is-model{border-color:#b5dcc3;background:#e6f5ec;color:#1f6b45}
.contracts-link.is-type{border-color:#f0d6a0;background:#fff4dc;color:#8a5a10}
.contracts-link a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.contracts-chars{margin-top:6px;font-size:13px}.contracts-chars summary{cursor:pointer;color:var(--rmi-blue)}.contracts-chars p{margin:4px 0 0;color:var(--rmi-muted)}
.contracts-price{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;display:block;letter-spacing:-.01em}
.contracts-price small{display:block;font-size:12px;font-weight:400;color:var(--rmi-muted);margin-top:2px}
.contracts-grid td a{color:var(--rmi-blue);font-weight:600;text-decoration:none}
.contracts-eis{display:inline-block;margin-top:6px;font-size:13px}
.contracts-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid #e1e8f0;background:#f8fafc;font-size:14px;color:var(--rmi-muted)}
.contracts-pager:empty{display:none}
.contracts-pager-nav{display:flex;align-items:center;gap:10px}
.contracts-pager button{border:1px solid var(--rmi-line-strong);background:#fff;border-radius:8px;padding:6px 12px;font:600 14px var(--rmi-font);color:var(--rmi-blue);cursor:pointer}
.contracts-pager button:disabled{opacity:.4;cursor:default}
.contracts-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 28px;font-size:14px;line-height:1.55;color:var(--rmi-muted)}
.contracts-sources h2{font-size:16px;margin:0 0 8px;color:var(--rmi-ink)}
.contracts-sources p{margin:0 0 8px}
.contracts-footer{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;font-size:14px;color:var(--rmi-muted);margin:12px 0 0}
.contracts-footer a{color:var(--rmi-blue)}
@media (max-width:1180px){
 .contracts-hero{grid-template-columns:minmax(0,1fr)}
 .contracts-hero-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
 .contracts-sources{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:980px){
 .contracts-page main{padding:0 16px 40px}
 .contracts-hero h1{font-size:30px}
 .contracts-hero-facts{grid-template-columns:minmax(0,1fr)}
 .contracts-stage{padding:18px 16px 16px;border-radius:16px}
 .contracts-search{grid-template-columns:minmax(0,1fr)}
 .contracts-search button[type=submit]{justify-content:center}
 .contracts-charts,.contracts-intro{grid-template-columns:minmax(0,1fr)}
 .contracts-filters button{margin-left:0}
 .contracts-tabs{display:flex}
 .contracts-tabs a{flex:1 1 auto;text-align:center;padding-inline:10px}
 .contracts-grid,.contracts-grid thead,.contracts-grid tbody,.contracts-grid tr,.contracts-grid td{display:block}
 .contracts-grid thead{display:none}
 .contracts-grid td{border-right:0;padding:6px 16px}
 .contracts-grid tr{border-bottom:1px solid #e1e8f0;padding:10px 0}
 .contracts-grid td{border-bottom:0}
}
.contracts-party{display:block;margin:0 0 8px;font-size:13px;line-height:1.45;color:var(--rmi-ink)}
.contracts-party small{display:block;font:600 10.5px/1.3 var(--rmi-font);letter-spacing:.05em;text-transform:uppercase;color:var(--rmi-muted);margin:0 0 2px}
.contracts-grid td.contracts-parties{background:#fafcfe}
/* Группа позиций одного контракта: внутри пунктир, между контрактами сплошная линия. Контракт и стороны занимают всю высоту группы. */
.contracts-grid tbody td{border-bottom:1px dashed #e6edf4}
.contracts-grid tbody tr.is-first>td{border-top:1px solid #d3dde8}
.contracts-grid tbody tr:first-child>td{border-top:0}
.contracts-grid tbody tr.is-cont>td{padding-top:10px;padding-bottom:10px}
.contracts-grid tbody tr.is-cont .contracts-name{font-size:14px}
.contracts-grid td.contracts-contract,.contracts-grid td.contracts-parties{border-bottom:0}
.contracts-group-note{display:inline-block;margin-top:8px;padding:3px 9px;border-radius:999px;background:#eaf1f8;color:#2f5a85;font-size:12px;font-weight:600}
.contracts-repeat{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;background:#f1f4f8;color:var(--rmi-muted);font-size:12px;font-weight:600}
/* Карточки графиков одной высоты: столбики занимают свободное место, факты прижаты к низу. */
.contracts-chart{display:flex;flex-direction:column}
.contracts-chart .contracts-bars{flex:1;height:auto;min-height:130px}
.contracts-facts{margin:auto 0 0;padding:12px 0 0;display:grid;gap:8px}
.contracts-facts div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 10px;border-radius:10px;background:#f4f7fb}
.contracts-facts dt{font-size:13px;color:var(--rmi-muted)}
.contracts-facts dd{margin:0;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.contracts-facts .is-up dd{color:#a1461a}.contracts-facts .is-down dd{color:#1f6b45}
/* Регионы и поставщики: два списка с подписью «позиций» справа. */
.contracts-chart--lists h3{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.contracts-chart--lists h3 small{font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:none;color:#8a9aab}
.contracts-chart--lists .contracts-list+h3{margin-top:16px}
.contracts-chart--lists .contracts-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
@media (max-width:980px){
 .contracts-grid tbody tr.is-cont{border-top:0;padding-top:0}
 .contracts-grid tbody td{border-bottom:0}
 .contracts-grid tbody tr.is-first>td{border-top:0}
 .contracts-grid tbody tr.is-cont td:first-child::before{content:"Тот же контракт";display:block;font:600 10.5px/1.3 var(--rmi-font);letter-spacing:.05em;text-transform:uppercase;color:var(--rmi-muted);margin:0 0 4px}
}
/* Сбор по новому запросу: карточка с индикатором, полосой и шагами. */
.contracts-collecting{padding:26px 28px 22px;background:linear-gradient(135deg,#f6f9fc,#fff)}
.contracts-collecting-head{display:flex;align-items:center;gap:16px;margin:0 0 18px}
.contracts-collecting-head strong{display:block;font-size:18px;letter-spacing:-.01em;color:var(--rmi-ink-strong,#17293d);margin:0 0 3px}
.contracts-collecting-head span{font-size:14px;color:var(--rmi-muted)}
.contracts-spinner{flex:none;width:40px;height:40px;border-radius:50%;border:4px solid #dde8f4;border-top-color:var(--rmi-blue,#2f5a85);animation:contracts-spin .9s linear infinite}
@keyframes contracts-spin{to{transform:rotate(360deg)}}
.contracts-progress{height:8px;border-radius:4px;background:#e6edf5;overflow:hidden;margin:0 0 18px}
.contracts-progress span{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#3e70a2,#2a4b72);transition:width 1.2s ease}
.contracts-steps{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;counter-reset:st}
.contracts-steps li{counter-increment:st;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--rmi-line,#e1e8f0);background:#fff;font-size:13.5px;color:var(--rmi-muted)}
.contracts-steps li::before{content:counter(st);flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eef2f7;color:var(--rmi-muted);font:700 13px var(--rmi-font)}
.contracts-steps li.is-active{border-color:#9db8d6;color:var(--rmi-ink);box-shadow:0 0 0 3px #dce9f7}
.contracts-steps li.is-active::before{background:var(--rmi-blue,#2f5a85);color:#fff}
.contracts-steps li.is-done{color:#1f6b45}
.contracts-steps li.is-done::before{content:"✓";background:#e6f5ec;color:#1f6b45}
.contracts-collecting-note{margin:0;font-size:12.5px;color:var(--rmi-muted)}
@media(max-width:780px){.contracts-steps{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.contracts-spinner{animation-duration:2.4s}}
.contracts-status.is-collecting{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ===== Карточка позиции и контракта (30.10.2026): чипы кодов, характеристики сразу, отклонение от медианы,
   факты контракта списком, кнопка «Документы и условия» и строка подробностей с плитками документов. ===== */
.contracts-name{font-size:15.5px;line-height:1.35;color:var(--rmi-ink-strong,#17293d)}
.contracts-brand{display:inline-block;margin:0 0 6px;padding:2px 9px;border-radius:7px;background:#eef3fa;color:#2f5a85;font-size:12.5px;font-weight:700;letter-spacing:.01em}
.contracts-meta{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px}
.contracts-chip{display:inline-flex;align-items:baseline;gap:5px;padding:3px 8px;border-radius:7px;border:1px solid #e1e8f0;background:#fff;font-size:12.5px;color:var(--rmi-ink);font-variant-numeric:tabular-nums}
.contracts-chip small{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8a9aab}
.contracts-chip.is-ru{border-color:#b5dcc3;background:#f1faf4}
.contracts-charsbox{margin-top:10px;padding:10px 12px;border-radius:10px;background:#f6f9fc;border:1px solid #e8eef5}
.contracts-charlist{margin:0 0 6px;padding:0;list-style:none;display:grid;gap:3px;font-size:13px;line-height:1.4;color:#41556b}
.contracts-charlist li{position:relative;padding-left:12px}
.contracts-charlist li::before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:#9db8d6}
.contracts-charbtn{border:0;background:none;padding:0;font:600 13px var(--rmi-font);color:var(--rmi-blue,#2f5a85);cursor:pointer;text-decoration:underline;text-decoration-color:#9db8d6;text-underline-offset:3px}
.contracts-charbtn:disabled{cursor:progress;color:var(--rmi-muted);text-decoration:none}
.contracts-charnote{font-size:12.5px;color:var(--rmi-muted)}
.contracts-charfull strong{display:block;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--rmi-muted);margin:0 0 6px}
.contracts-charfull dl{margin:0;display:grid;gap:0}
.contracts-charfull dl div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:5px 0;border-bottom:1px dashed #dde6ef;font-size:13px}
.contracts-charfull dl div:last-child{border-bottom:0}
.contracts-charfull dt{color:var(--rmi-muted)}
.contracts-charfull dd{margin:0;font-weight:600;color:var(--rmi-ink)}
.contracts-pricecell .contracts-price{font-size:21px}
.contracts-dev{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}
.contracts-dev.is-below{background:#e6f5ec;color:#1f6b45}
.contracts-dev.is-above{background:#fff1e6;color:#a1461a}
.contracts-dev.is-even{background:#eef2f7;color:#41556b}
.contracts-amount{display:block;margin-top:6px;font-size:12.5px;color:var(--rmi-muted);font-variant-numeric:tabular-nums}
.contracts-label{display:block;font:600 10.5px/1.3 var(--rmi-font);letter-spacing:.05em;text-transform:uppercase;color:var(--rmi-muted);margin:0 0 2px}
.contracts-regnum{font-variant-numeric:tabular-nums;letter-spacing:.01em}
.contracts-cfacts{margin:8px 0 0;display:grid;gap:3px}
.contracts-cfacts div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;font-size:13px;line-height:1.4}
.contracts-cfacts dt{color:var(--rmi-muted)}
.contracts-cfacts dd{margin:0;color:var(--rmi-ink);font-variant-numeric:tabular-nums}
.contracts-cfacts.is-wide div{grid-template-columns:130px minmax(0,1fr);padding:6px 0;border-bottom:1px dashed #e1e8f0;font-size:14px}
.contracts-cfacts.is-wide div:last-child{border-bottom:0}
.contracts-cfacts a{color:var(--rmi-blue);font-weight:600;text-decoration:none}
.contracts-more{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;border-radius:999px;border:1px solid #c9d8e8;background:#fff;font:600 13px var(--rmi-font);color:var(--rmi-blue,#2f5a85);cursor:pointer;box-shadow:0 1px 2px #1b304a10;transition:background-color .15s,border-color .15s}
.contracts-more::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.contracts-more:hover{background:#f1f6fc;border-color:#9db8d6}
.contracts-more.is-open::after{transform:translateY(2px) rotate(-135deg)}
.contracts-party em{display:block;font-style:normal;font-size:12px;color:var(--rmi-muted);margin-top:1px}
.contracts-grid tbody tr.contracts-detail-row>td{padding:0 16px 18px;background:#fafcfe;border-bottom:1px solid #d3dde8}
.contracts-detail{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:18px;padding:16px 18px;border-radius:14px;background:#fff;border:1px solid #dde6ef;box-shadow:0 10px 26px -18px #1b304a55}
.contracts-detail h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--rmi-muted)}
.contracts-detail h4 span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#eef3fa;color:#2f5a85;font-size:11.5px;letter-spacing:0}
.contracts-detail-note{margin:10px 0 0;font-size:12px;color:var(--rmi-muted)}
.contracts-detail-docs{display:grid;gap:14px}
.contracts-docs-hint,.contracts-docs-empty{margin:-4px 0 8px;font-size:12.5px;color:var(--rmi-muted)}
.contracts-doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.contracts-doc{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--rmi-line-strong,#cfdbe7);background:#fff;text-decoration:none;color:var(--rmi-ink);transition:border-color .15s,box-shadow .15s,transform .15s}
.contracts-doc:hover{border-color:#9db8d6;box-shadow:0 6px 16px -10px #1b304a66;transform:translateY(-1px)}
.contracts-doc-ext{flex:none;display:grid;place-items:center;width:38px;height:44px;border-radius:7px;font:800 10.5px var(--rmi-font);letter-spacing:.03em;color:#fff;background:#7b8ea3}
.contracts-doc-ext.is-pdf{background:#c2413b}.contracts-doc-ext.is-doc{background:#2f6db5}.contracts-doc-ext.is-xls{background:#1f7a4d}
.contracts-doc-body{min-width:0;display:grid;gap:2px}
.contracts-doc-body em{font-style:normal;justify-self:start;padding:1px 7px;border-radius:999px;background:#fff4dc;color:#8a5a10;font-size:11px;font-weight:700}
.contracts-doc-name{font-size:13.5px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.contracts-doc-body small{font-size:12px;color:var(--rmi-muted)}
.contracts-detail-loading{display:flex;align-items:center;gap:12px;padding:16px 18px;font-size:14px;color:var(--rmi-muted)}
.contracts-detail-loading .contracts-spinner{width:22px;height:22px;border-width:3px}
.contracts-detail-loading.is-error{color:#a1461a}
.contracts-detail-loading.is-error .contracts-more{margin:0}
@media (max-width:980px){
 .contracts-detail{grid-template-columns:minmax(0,1fr);padding:14px}
 .contracts-grid tbody tr.contracts-detail-row>td{padding:0 12px 14px}
 .contracts-cfacts.is-wide div{grid-template-columns:minmax(0,1fr);gap:2px}
 .contracts-charfull dl div{grid-template-columns:minmax(0,1fr);gap:2px}
}
.contracts-subject{display:block;margin:2px 0 6px;font-size:13px;line-height:1.4;color:#41556b}
.contracts-muted{color:var(--rmi-muted)}
a.contracts-more{text-decoration:none}
a.contracts-more::after{width:6px;height:6px;transform:rotate(-45deg)}
/* Гистограмма цен (30.10.2026): столбики по интервалам, ядро 10–90 % синим, медиана вертикальной линией с подписью. */
.contracts-hist{position:relative;display:flex;align-items:flex-end;gap:3px;height:110px;margin:26px 0 6px;padding:0 0 1px;border-bottom:1px solid #d7e1eb}
.contracts-hist i{flex:1;min-width:0;border-radius:4px 4px 1px 1px;background:#d9e4f0;transition:height .4s}
.contracts-hist i.is-core{background:linear-gradient(180deg,#5b86b5,#3a6797)}
.contracts-hist-median{position:absolute;top:-22px;bottom:-1px;width:0;border-left:2px dashed #17293d;transform:translateX(-1px)}
.contracts-hist-median b{position:absolute;top:0;left:6px;font-size:12px;font-weight:700;white-space:nowrap;color:var(--rmi-ink-strong,#17293d);background:#fff;padding:0 3px;border-radius:4px}
.contracts-hist-median small{position:absolute;top:15px;left:6px;font-size:10.5px;color:var(--rmi-muted);white-space:nowrap;background:#fff;padding:0 3px}
.contracts-hist-axis{display:flex;justify-content:space-between;gap:8px;margin:0 0 10px;font-size:11.5px;color:var(--rmi-muted);font-variant-numeric:tabular-nums}
.contracts-hist-axis span:nth-child(2){color:#2f5a85;font-weight:600}
/* Регионы с медианой: под строкой тонкая полоска, середина = общая медиана, левее дешевле, правее дороже. */
.contracts-list li.has-bar{position:relative;padding-bottom:9px}
.contracts-list li.has-bar::after{content:"";position:absolute;left:0;bottom:3px;height:3px;width:var(--bar);border-radius:2px;background:#9db8d6}
.contracts-list li.has-bar[data-dev=below]::after{background:#4f9a6f}
.contracts-list li.has-bar[data-dev=above]::after{background:#d0814f}
.contracts-list li.has-bar::before{content:"";position:absolute;left:50%;bottom:1px;width:1px;height:7px;background:#8a9aab}
.contracts-list-n{font-weight:400;color:var(--rmi-muted);font-size:12px}
.contracts-doc-ext.is-eis{background:linear-gradient(135deg,#2a4b72,#3e70a2)}

/* Числа в плитках показателей: размер от ширины самой плитки (cqi), без переносов. Диапазон «14 066 ₽ – 26 450 ₽» остаётся в одну строку. */
.contracts-kpi{container-type:inline-size}
.contracts-kpi b{white-space:nowrap;overflow-wrap:normal;font-size:clamp(16px,10.5cqi,26px)}
/* Факты под гистограммой: в узкой колонке значение уходит на свою строку целиком, а не рвётся посередине. */
.contracts-facts div{flex-wrap:wrap;row-gap:2px}
.contracts-facts dd{margin-left:auto;white-space:nowrap}
.contracts-more{white-space:nowrap}
.contracts-outlier{display:inline-block;margin:6px 0 0 6px;padding:2px 8px;border-radius:999px;background:#fdecea;color:#a3322b;font-size:12px;font-weight:700;cursor:help}
/* Уточнение вида изделия: кнопки НКМИ с названием и числом позиций, выбранный вид тёмной кнопкой с крестиком. */
.contracts-facets{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px}
.contracts-facets-label{font-size:13px;font-weight:600;color:var(--rmi-muted);margin-right:2px}
.contracts-facet{display:inline-flex;align-items:center;gap:8px;max-width:100%;height:36px;padding:0 12px;border-radius:999px;border:1px solid #d3dde8;background:#fff;font:500 13px/1 var(--rmi-font);color:var(--rmi-ink);cursor:pointer;box-shadow:0 1px 2px #1b304a0d;transition:border-color .15s,box-shadow .15s}
.contracts-facet:hover{border-color:#9db8d6;box-shadow:0 4px 12px -6px #1b304a55}
.contracts-facet b{font-weight:700;color:var(--rmi-blue,#2f5a85);font-variant-numeric:tabular-nums}
.contracts-facet span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}
.contracts-facet em{font-style:normal;font-weight:700;font-size:12px;padding:3px 7px;border-radius:999px;background:#eef3fa;color:#2f5a85}
.contracts-facet.is-active{background:var(--rmi-blue,#2f5a85);border-color:var(--rmi-blue,#2f5a85);color:#fff}
.contracts-facet.is-active b{color:#fff}
.contracts-facet.is-active i{font-style:normal;font-size:16px;line-height:1;opacity:.85}
.contracts-facets-more{font-size:12.5px;color:var(--rmi-muted)}

/* Выдача карточками контрактов (31.10.2026): шапка контракта со сторонами и действиями, общее для позиций, позиции с ценой. */
.contracts-table-panel:has(.cc-list){background:#f3f6fa}
.cc-list{display:grid;gap:14px;padding:16px}
.cc{border:1px solid #dbe4ee;border-radius:16px;background:#fff;box-shadow:0 12px 28px -24px #1b304a80;overflow:hidden}
.cc-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) auto;grid-template-areas:"id id actions" "facts parties actions";gap:12px 26px;padding:16px 18px 14px;background:linear-gradient(180deg,#f5f8fc,#fff);border-bottom:1px solid #e6edf4}
.cc-id{grid-area:id;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0}
.cc-law{flex:none;padding:5px 8px;border-radius:7px;background:#2a4b72;color:#fff;font:700 11px/1 var(--rmi-font);letter-spacing:.04em}
.cc-law.is-223{background:#55508a}
.cc-regnum{font:700 16px/1.3 var(--rmi-font);color:var(--rmi-blue);text-decoration:none;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.cc-regnum:hover{text-decoration:underline;text-underline-offset:3px}
.cc-status{padding:5px 10px;border-radius:999px;font:600 12px/1 var(--rmi-font);background:#e8f1fb;color:#2f5a85}
.cc-status::before{content:"";display:inline-block;width:6px;height:6px;margin:0 6px 1px 0;border-radius:50%;background:currentColor;vertical-align:middle}
.cc-status.is-done{background:#e6f5ec;color:#1f6b45}
.cc-status.is-stop{background:#fdecea;color:#a1361a}
.cc-facts{grid-area:facts;display:flex;flex-wrap:wrap;align-content:flex-start;gap:10px 24px;margin:0}
.cc-facts div{display:grid;gap:3px}
.cc-facts dt{font:600 10.5px/1.3 var(--rmi-font);letter-spacing:.05em;text-transform:uppercase;color:var(--rmi-muted)}
.cc-facts dd{margin:0;font-size:14px;font-weight:600;color:var(--rmi-ink);font-variant-numeric:tabular-nums}
.cc-facts .is-sum dd{font-size:15.5px;font-weight:700;color:var(--rmi-ink-strong,#17293d)}
.cc-parties{grid-area:parties;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 18px;min-width:0}
.cc-party{font-size:13px;line-height:1.45;color:var(--rmi-ink);overflow-wrap:anywhere}
.cc-party small{display:block;margin:0 0 2px;font:600 10.5px/1.3 var(--rmi-font);letter-spacing:.05em;text-transform:uppercase;color:var(--rmi-muted)}
.cc-party em{display:block;margin-top:2px;font-style:normal;font-size:12px;color:var(--rmi-muted)}
.cc-actions{grid-area:actions;display:flex;flex-direction:column;gap:8px;min-width:190px}
.cc-actions .contracts-more{margin:0;justify-content:center}
.cc-eis{display:flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;border-radius:999px;border:1px solid #d3dfeb;background:#fff;font:600 13px/1.2 var(--rmi-font);color:var(--rmi-blue);text-decoration:none}
.cc-eis:hover{border-color:#9db8d6;background:#f4f8fc}
.cc-subject{margin:0;padding:10px 18px;border-bottom:1px solid #eef2f7;font-size:13px;line-height:1.5;color:var(--rmi-muted)}
.cc-common{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:13px 18px;border-bottom:1px solid #eef2f7;background:#fbfcfe}
.cc-common-name{flex:1 1 100%;margin:0;font-size:15.5px;line-height:1.35;font-weight:700;color:var(--rmi-ink-strong,#17293d)}
.cc-common-count{padding:4px 10px;border-radius:999px;background:#2a4b72;color:#fff;font:600 12px/1.2 var(--rmi-font)}
.cc-common .contracts-meta{margin:0}
.cc-common .contracts-link{margin:0}
.cc-item{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:0;border-top:1px dashed #e3eaf2}
.cc-item:first-child{border-top:0}
.cc-item-info{padding:14px 18px;min-width:0}
.cc-item-info .contracts-brand:first-child{margin-top:0}
.cc-price{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 18px;border-left:1px solid #eef2f7;background:#fcfdfe}
.cc-price .contracts-repeat,.cc-price .contracts-dev,.cc-price .contracts-outlier{margin:0}
.cc .contracts-detail-row{padding:14px 18px 18px;border-top:1px solid #e6edf4;background:#f7fafd}
@media (max-width:980px){
 .cc-list{padding:10px;gap:12px}
 .cc-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"id" "facts" "parties" "actions";padding:14px}
 .cc-actions{flex-direction:row;flex-wrap:wrap;min-width:0}
 .cc-actions>*{flex:1 1 160px}
 .cc-common{padding:12px 14px}
 .cc-item{grid-template-columns:minmax(0,1fr)}
 .cc-item-info{padding:12px 14px 8px}
 .cc-price{padding:10px 14px 14px;border-left:0;border-top:1px solid #f0f4f8}
 .cc .contracts-detail-row{padding:12px}
}.cc-common~.cc-items .contracts-brand{margin:0 0 8px;padding:4px 10px;font-size:14px}
.cc-count{padding:4px 10px;border-radius:999px;background:#eef3f8;color:#4a6584;font:600 12px/1.2 var(--rmi-font)}

/* Маленькие выборки (31.10.2026): плашка «мало данных» с кнопками расширения поиска, один квартал и одна цена без пустых графиков. */
.contracts-thin{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px;border:1px solid #d9e3ee;border-left:4px solid #6f93b8;border-radius:12px;background:linear-gradient(90deg,#f3f7fb,#fff)}
.contracts-thin p{margin:0;font-size:14px;line-height:1.5;color:var(--rmi-ink);flex:1 1 360px}
.contracts-thin strong{color:var(--rmi-ink-strong,#17293d)}
.contracts-thin-actions{display:flex;flex-wrap:wrap;gap:8px}
.contracts-thin-actions button{border:1px solid #c7d6e6;background:#fff;border-radius:999px;padding:7px 14px;font:600 13px/1.2 var(--rmi-font);color:var(--rmi-blue,#2f5a85);cursor:pointer;transition:background-color .15s,border-color .15s}
.contracts-thin-actions button:first-child{background:var(--rmi-blue,#2f5a85);border-color:var(--rmi-blue,#2f5a85);color:#fff}
.contracts-thin-actions button:hover{border-color:var(--rmi-blue,#2f5a85)}
.contracts-thin-actions button:first-child:hover{background:#244a70}
.contracts-bars{justify-content:center}
.contracts-bar{max-width:96px}
.contracts-single-value{display:flex;flex-direction:column;gap:4px;margin:6px 0 14px;padding:16px;border-radius:12px;background:linear-gradient(135deg,#f1f6fb,#e6eef7)}
.contracts-single-value b{font-size:30px;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--rmi-ink-strong,#17293d)}
.contracts-single-value span{font-size:13px;color:var(--rmi-muted)}
.contracts-flat{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:4px 0 12px;padding:14px 16px;border-radius:12px;border:1px dashed #c7d6e6;background:#fafcfe}
.contracts-flat b{font-size:22px;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--rmi-ink-strong,#17293d)}
.contracts-flat span{font-size:13px;color:var(--rmi-muted)}

/* Шапка «Цен и закупок» (02.11.2026): заголовок и короткое описание слева, карточка «База контрактов ЕИС» справа.
   Внизу страницы «Как это работает» тремя шагами в одной панели и «Источники и расчёты» с короткими списками. */
.ph-hero{grid-template-columns:minmax(0,1fr) minmax(320px,440px);align-items:end;gap:20px 40px;margin:4px 0 16px}
.ph-hero h1{font-size:clamp(30px,2.5vw,42px)}
.ph-hero .contracts-lead{font-size:15.5px;margin-top:12px}
.ph-how{margin:0 0 18px;padding:18px 22px 20px;background:#fff;border:1px solid var(--rmi-card-edge,#d3dde8);border-radius:16px;box-shadow:var(--rmi-shadow-1,0 1px 2px #1b304a0d)}
.ph-how h2,.ph-sources-head h2{margin:0 0 14px;font:700 13px/1.3 var(--rmi-font);letter-spacing:.06em;text-transform:uppercase;color:var(--rmi-muted)}
.ph-how ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 28px;margin:0;padding:0;list-style:none}
.ph-how li{position:relative;display:flex;gap:14px;min-width:0}
.ph-how li+li{padding-left:28px;border-left:1px solid #e3eaf2;margin-left:-14px}
.ph-how-num{position:relative;z-index:1;flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#3e70a2,#2a4b72);color:#fff;font:700 15px/1 var(--rmi-font);box-shadow:0 0 0 5px #fff,0 4px 10px #2a4b7240}
.ph-how h3{margin:6px 0 6px;font-size:16px;letter-spacing:-.01em;color:var(--rmi-ink-strong,#17293d)}
.ph-how p{margin:0;font-size:14px;line-height:1.55;color:var(--rmi-ink)}
.ph-sources{margin:0 0 18px;padding:20px 22px 22px;background:#fff;border:1px solid var(--rmi-card-edge,#d3dde8);border-radius:16px;box-shadow:var(--rmi-shadow-1,0 1px 2px #1b304a0d);scroll-margin-top:90px}
.ph-sources-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px 20px;flex-wrap:wrap;margin:0 0 16px}
.ph-sources-head h2{margin:0}
.ph-sources-head p{margin:0;font-size:14px;color:var(--rmi-muted)}
.ph-sources-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ph-sources-grid article{padding:16px 18px;border:1px solid #e3eaf2;border-radius:14px;background:linear-gradient(180deg,#f8fafd,#fff);min-width:0}
.ph-src-icon{display:grid;place-items:center;width:38px;height:38px;margin:0 0 10px;border-radius:11px;background:#eaf1f8;color:var(--rmi-blue,#2f5a85)}
.ph-src-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ph-sources-grid h3{margin:0 0 10px;font-size:16px;color:var(--rmi-ink-strong,#17293d)}
.ph-sources-grid ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.ph-sources-grid li{position:relative;padding-left:16px;font-size:14px;line-height:1.5;color:var(--rmi-ink)}
.ph-sources-grid li::before{content:"";position:absolute;left:2px;top:.6em;width:6px;height:6px;border-radius:50%;background:#9db8d6}
.ph-sources-grid .ph-levels li{padding-left:0}
.ph-sources-grid .ph-levels li::before{display:none}
.ph-levels b{display:inline-block;margin:0 8px 2px 0;padding:2px 9px;border-radius:999px;font:700 12px/1.4 var(--rmi-font)}
.ph-levels b.is-strong{background:#e3f2e8;color:#25694a}
.ph-levels b.is-weak{background:#fff4dc;color:#8a5a10}
.ph-levels b.is-none{background:#eef1f5;color:#5d6f82}
.ph-sources-grid article>p{margin:12px 0 0;font-size:13.5px;line-height:1.5;color:var(--rmi-muted)}
.ph-sources-grid a{color:var(--rmi-blue,#2f5a85)}
@media (max-width:1100px){
 .ph-hero{grid-template-columns:minmax(0,1fr);align-items:start}
 .ph-base-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:980px){
 .ph-how ol,.ph-sources-grid{grid-template-columns:minmax(0,1fr)}
 .ph-how li+li{padding:14px 0 0;border-left:0;border-top:1px solid #e3eaf2;margin-left:0}
}
@media (max-width:640px){
 .ph-how,.ph-sources{padding:16px 14px}
}
.ph-hero--solo{grid-template-columns:minmax(0,1fr)}.ph-hero--solo .contracts-lead{max-width:80ch}
/* Синяя панель «Цен» (02.11.2026): знак ₽ на фоне, как § в «ГОСТах». Фильтры и примеры собраны в одну подложку
   с подписями в левой колонке, «Сбросить» прижат вправо. */
.rmi-stage form.contracts-stage{padding:20px 24px 20px}
.rmi-stage form.contracts-stage::after{content:"₽";position:absolute;right:34px;top:-36px;font:700 200px/1 Georgia,"Times New Roman",serif;color:#ffffff0f;pointer-events:none}
.rmi-stage form.contracts-stage>*{position:relative;z-index:1}
.rmi-stage form.contracts-stage .contracts-filters{margin-top:16px;padding:12px 14px 12px 108px;border:0;border-radius:14px 14px 0 0;background:#0f243d2e}
.rmi-stage form.contracts-stage .contracts-filters::before{content:"Фильтры";position:absolute;left:18px;top:24px;font:600 13px/1 var(--rmi-font);color:#d6e3f1}
.rmi-stage form.contracts-stage .contracts-filters #contracts-reset{margin-left:auto}
.rmi-stage form.contracts-stage .contracts-filters label{height:36px;border-color:#ffffff33;background:#ffffff12}
.rmi-stage form.contracts-stage .contracts-filters label:hover{background:#ffffff26}
.rmi-stage form.contracts-stage .contracts-filters label.is-set{background:#ffffff2e;border-color:#ffffffa6}
.rmi-stage form.contracts-stage .contracts-filters label:has(input:checked){background:#fff;border-color:#fff;color:var(--rmi-blue)}
.rmi-stage form.contracts-stage .contracts-examples{margin-top:2px!important;padding:11px 14px 12px 108px;border-radius:0 0 14px 14px;background:#0f243d2e}
.rmi-stage form.contracts-stage .contracts-examples>span:first-child{position:absolute;left:18px;top:19px}
@media (max-width:760px){
 .rmi-stage form.contracts-stage{padding:16px 14px 14px}
 .rmi-stage form.contracts-stage::after{font-size:130px;right:12px;top:-20px}
 .rmi-stage form.contracts-stage .contracts-filters,.rmi-stage form.contracts-stage .contracts-examples{padding-left:12px}
 .rmi-stage form.contracts-stage .contracts-filters::before{position:static;flex:1 1 100%;margin:0 0 2px}
 .rmi-stage form.contracts-stage .contracts-examples>span:first-child{position:static}
}
