/* Базовый фирстиль платформы «Ниже нуля» — концепция Стратум */
@font-face{font-family:'Onest';font-weight:400;font-display:swap;src:url('../fonts/onest-400-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-weight:400;font-display:swap;src:url('../fonts/onest-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:'Onest';font-weight:500;font-display:swap;src:url('../fonts/onest-500-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-weight:600;font-display:swap;src:url('../fonts/onest-600-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-weight:700;font-display:swap;src:url('../fonts/onest-700-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-weight:800;font-display:swap;src:url('../fonts/onest-800-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

:root{
  --deep:#1C2B3B;--deep3:#0f1923;--water:#3FA796;--water-d:#2f8576;--water-bg:#e8f4f1;
  --clay:#C9885B;--reper:#43566B;--paper:#F4F6F8;--ink:#1C2B3B;--muted:#5b6776;--line:#e2e7ee;
  --font:'Onest',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{overflow-x:clip}  /* нет горизонтального скролла на мобильных → шапка всегда = ширине экрана, бургер доступен */
h1,h2,h3,h4{overflow-wrap:break-word}  /* длинные слова не ломают вёрстку */
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--water-d);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.topbar{background:rgba(28,43,59,.95);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20;border-bottom:1px solid #2c3d4e}
.topbar .wrap{max-width:1240px}  /* шапка шире контента (1080), чтобы развёрнутое меню разделов и кнопки входа стояли сбалансированно (без пустоты в центре) */
.topbar .row{display:flex;align-items:center;gap:24px;height:62px}
.brand{display:flex;align-items:center;gap:10px}.brand img{width:30px;height:30px}
.brand .wm{color:#fff;font-weight:700;font-size:19px}.brand .wm b{color:var(--water)}
.topbar nav{display:flex;gap:20px;margin-left:8px}.topbar nav a{color:#c2cdd8;font-size:14px;font-weight:500}.topbar nav a:hover{color:#fff;text-decoration:none}
.topbar .right{margin-left:auto;display:flex;gap:10px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-weight:600;font-size:14px;padding:10px 18px;border-radius:9px;border:1.5px solid transparent;cursor:pointer;transition:.15s}
.btn-pri{background:var(--water-d);color:#fff}.btn-pri:hover{background:#37998a;text-decoration:none}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.3);color:#fff}.btn-ghost:hover{border-color:#fff;text-decoration:none}
.hero{background:linear-gradient(135deg,#10202a,#0e1116);color:#fff;padding:70px 0 64px}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--water)}
.hero h1{font-size:46px;font-weight:800;line-height:1.05;margin:14px 0 16px;color:#fff;letter-spacing:-.02em}
.hero h1 .ac{color:var(--water)}.hero p{font-size:18px;color:#cfd8e1;max-width:620px}
.bars{display:flex;flex-direction:column;gap:6px;width:160px;margin-bottom:22px}
.bars i{height:8px;border-radius:5px;display:block}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:30px 0}
@media(max-width:760px){.grid{grid-template-columns:1fr}.hero h1{font-size:34px}}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px}
.card .code{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--water-d);font-weight:600}
.card h3{margin:6px 0 6px;font-size:17px}.card p{margin:0;font-size:14px;color:var(--muted)}
.badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:20px;background:var(--water-bg);color:var(--water-d)}
section{padding:44px 0}h2{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:0 0 8px}
.lead{color:var(--muted);font-size:17px;margin:0 0 8px}
footer{background:var(--deep3);color:#9fb0bf;padding:34px 0;font-size:13px;margin-top:30px}
footer b{color:#fff}
/* auth */
.authwrap{min-height:calc(100vh - 62px);display:flex;align-items:center;justify-content:center;padding:40px 20px}
.authcard{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 14px 40px rgba(21,33,46,.08)}
.authcard h1{font-size:24px;margin:0 0 6px}.authcard .sub{color:var(--muted);font-size:14px;margin:0 0 20px}
.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;color:var(--reper);margin-bottom:6px}
.field input,.field select{width:100%;font-family:var(--font);font-size:15px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.checkrow{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--muted);margin:6px 0}
.msg{font-size:13px;padding:10px 12px;border-radius:8px;margin-bottom:12px;display:none}
.msg.err{background:#fbeeea;color:#a23;display:block}.msg.ok{background:#e9f5ee;color:#1f7a45;display:block}
.authcard .btn{width:100%}.authcard .alt{text-align:center;font-size:13px;color:var(--muted);margin-top:16px}
:focus-visible{outline:2px solid var(--water);outline-offset:2px}

/* ===== M3 библиотека ===== */
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 22px}
.filters input,.filters select{font-family:var(--font);font-size:14px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:#fff}
.filters input{min-width:260px;flex:1}
.lib-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:860px){.lib-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.lib-grid{grid-template-columns:1fr}}
.el-card{display:block;border:1px solid var(--line);border-radius:14px;padding:18px 20px;background:#fff;transition:.15s;color:var(--ink)}
.el-card:hover{border-color:var(--water);box-shadow:0 10px 28px rgba(21,33,46,.08);text-decoration:none;transform:translateY(-2px)}
.el-card .code{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--water-d)}
.el-card h3{font-size:16px;margin:4px 0 8px}
.el-card .meta{font-size:12.5px;color:var(--muted)}
.el-card .chips{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;background:var(--paper);border:1px solid var(--line);color:var(--reper)}
.chip.st-published{background:#e9f5ee;color:#1f7a45;border-color:#cfe9d8}
.chip.st-draft{background:#f3f0ee;color:#7a6a55}
.chip.st-review{background:#fdf1ea;color:#b4791f}
.chip.owner{background:var(--water-bg);color:var(--water-d);border-color:#bfe2e5}
/* деталь */
.el-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start;margin-bottom:8px}
.el-exports{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 24px}
.el-sec{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin-bottom:14px}
.el-sec h4{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;font-size:14px}
.kv .k{color:var(--muted)}.kv .v{color:var(--ink);font-weight:500}
.muted{color:var(--muted);font-size:13px}

/* ===== M1 портал ===== */
.subnav{display:flex;gap:18px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:6px;padding-bottom:10px}
.subnav a{font-size:14px;font-weight:600;color:var(--reper)}.subnav a:hover{color:var(--water-d);text-decoration:none}
.term-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(max-width:720px){.term-grid{grid-template-columns:1fr}}
.term{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#fff}
.term h4{margin:0 0 4px;font-size:15.5px}
.term .dom{font-size:11px;font-weight:600;color:var(--water-d);text-transform:uppercase;letter-spacing:.04em}
.term p{margin:6px 0 0;font-size:13.5px;color:var(--muted)}
.ntable{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ntable th{background:var(--deep);color:#fff;text-align:left;padding:10px 14px;font-size:12.5px;font-weight:600}
.ntable td{padding:10px 14px;border-top:1px solid var(--line)}
.ntable tr:hover td{background:var(--paper)}
.ntable .st{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;background:#e9f5ee;color:#1f7a45}
.ntable .st.dev{background:#fdf1ea;color:#b4791f}
.err-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:720px){.err-grid{grid-template-columns:1fr}}
.err{border:1px solid var(--line);border-left:4px solid var(--clay);border-radius:0 12px 12px 0;padding:16px 18px;background:#fff}
.err h4{margin:0 0 8px;font-size:15.5px}
.err .row{font-size:13px;margin:5px 0;color:var(--muted)}.err .row b{color:var(--ink)}
.qform{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;max-width:640px}

/* ===== M3 v2: фасеты, сравнение ===== */
.lib-layout{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:start}
@media(max-width:820px){.lib-layout{grid-template-columns:1fr}.facets{order:2}}
.facets{position:sticky;top:78px}
.facet{margin-bottom:18px}
.facet-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--reper);margin-bottom:8px}
.facet-row{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink);padding:3px 0;cursor:pointer}
.facet-row span{flex:1}.facet-row b{color:var(--muted);font-weight:600;font-size:12px}
.facet-row input{accent-color:var(--water-d)}
.lib-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.lib-toolbar input{flex:1;min-width:220px;font-family:var(--font);font-size:14px;padding:10px 13px;border:1px solid var(--line);border-radius:9px}
.lib-toolbar select{font-family:var(--font);font-size:14px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:#fff}
.active-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.achip{font-family:inherit;font-size:12px;font-weight:600;padding:4px 10px;border-radius:20px;background:var(--water-bg);color:var(--water-d);border:1px solid #bfe2e5;cursor:pointer;line-height:1.35}
.achip.clr{background:transparent;border-color:var(--line);color:var(--muted)}
.el-card2{position:relative;border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fff;transition:.15s}
.el-card2:hover{border-color:var(--water);box-shadow:0 10px 28px rgba(21,33,46,.08);transform:translateY(-2px)}
.el-card2 .code{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--water-d)}
.el-card2 h3{font-size:16px;margin:4px 0 6px}
.el-card2 .meta{font-size:12.5px;color:var(--muted)}
.el-card2 .spec{font-size:13px;color:var(--ink);font-weight:600;margin:6px 0 0}
.el-card2 .chips{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}
.cmpck{position:absolute;top:12px;right:12px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:4px;cursor:pointer}
.cmpck input{accent-color:var(--water-d)}
/* M3 ТИМ/САПР: бейдж типа контента + иконки форматов на карточке */
.kbrow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 6px}
.kbadge{font-size:10.5px;font-weight:700;letter-spacing:.02em;padding:3px 8px;border-radius:6px}
.kb-el{background:#eef4f3;color:var(--water-d)}
.kb-node{background:#eef1f6;color:#43566B}
.kb-album{background:#1C2B3B;color:#fff}
.fmts{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.fmt{font-size:9.5px;font-weight:600;color:#5a6b7d;background:#f3f6f9;border:1px solid var(--line);border-radius:4px;padding:2px 5px;letter-spacing:.02em}
.el-card2 .dwg-album{background:linear-gradient(135deg,#f4faf8,#eaf3f1)}
.el-card2 .dwg-album svg{width:60%;height:60%}
/* числовые слайдеры (подбор по Wx/Ix/масса) */
.lib-slider .ls-row{display:flex;align-items:center;gap:6px}
.lib-slider .ls-row input{width:100%;min-width:0;font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;font-family:var(--font)}
.lib-slider .ls-row span{color:var(--muted)}
.lib-slider .ls-hint{font-size:11px;color:var(--muted);margin-top:4px}
.ls-toggle{display:block;width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--line);margin-top:6px;padding:10px 0 4px;font-size:12.5px;font-weight:600;color:var(--water-d);cursor:pointer;font-family:var(--font)}
.ls-extra{margin-top:6px}
.compare-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:22px;z-index:60;background:var(--deep);color:#fff;border-radius:14px;padding:12px 18px;display:flex;gap:14px;align-items:center;box-shadow:0 14px 40px rgba(0,0,0,.3)}
.compare-bar span{font-weight:600;font-size:14px}
.modal{position:fixed;inset:0;z-index:80;background:rgba(15,25,35,.6);display:flex;align-items:center;justify-content:center;padding:24px}
.modal-box{background:#fff;border-radius:16px;padding:26px;max-width:900px;width:100%;max-height:86vh;overflow:auto}
.cmp-table{width:100%;border-collapse:collapse;font-size:13.5px}
.cmp-table th{background:var(--deep);color:#fff;text-align:left;padding:10px 12px;font-size:12.5px}
.cmp-table td{padding:9px 12px;border-top:1px solid var(--line)}
.cmp-table td.k{color:var(--muted);font-weight:600}
.cmp-table tr:hover td{background:var(--paper)}

/* ===== M3 деталь v2 ===== */
.el-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
@media(max-width:760px){.el-cols{grid-template-columns:1fr}}
.rel-list{display:flex;flex-direction:column;gap:6px}
.rel-list a{font-size:14px;color:var(--water-d)}
/* ===== M1 v2: фасеты доменов, алфавит, related ===== */
.dom-facets{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.dom-chip{font-size:13px;font-weight:600;padding:6px 13px;border-radius:20px;border:1px solid var(--line);background:#fff;color:var(--reper);cursor:pointer}
.dom-chip.on{background:var(--water-d);color:#fff;border-color:var(--water-d)}
.dom-chip b{opacity:.7;font-weight:600;margin-left:4px}
.term2{border:1px solid var(--line);border-radius:12px;padding:15px 17px;background:#fff}
.term2 .dom{font-size:11px;font-weight:700;color:var(--water-d);text-transform:uppercase;letter-spacing:.04em}
.term2 h4{margin:3px 0 5px;font-size:15.5px}
.term2 p{margin:5px 0 0;font-size:13.5px;color:var(--muted)}
.term2 .rel{margin-top:8px;font-size:12px;color:var(--reper)}
.term2 .rel a{color:var(--water-d)}
mark{background:#fdf1c8;color:inherit;padding:0 1px;border-radius:2px}

/* ===== M3 v3: чертёж сечения на карточке + datasheet-деталь + файлы ===== */
.el-card2 .dwg{background:#FBFCFD;border:1px solid var(--line);border-radius:10px;margin:0 0 11px;padding:4px;aspect-ratio:360/210;overflow:hidden;display:flex;align-items:center;justify-content:center}
.el-card2 .dwg img{width:100%;height:100%;object-fit:contain;display:block}
.el-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;align-items:center;margin:4px 0 10px}
@media(max-width:760px){.el-hero{grid-template-columns:1fr}}
.el-hero .dwg{background:#FBFCFD;border:1px solid var(--line);border-radius:14px;padding:10px}
.el-hero .dwg img{width:100%;height:auto;display:block}
.el-hero .dwg figcaption{font-size:11px;color:var(--muted);text-align:center;margin-top:4px}
.keyfig{list-style:none;margin:0;padding:0}
.keyfig li{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding:9px 2px;font-size:14px}
.keyfig li span{color:var(--muted)}
.keyfig li b{color:var(--water-d);font-size:16px}
.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));gap:10px}
.fcard{display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:11px 13px;background:#fff;text-decoration:none;color:var(--ink);transition:.15s}
.fcard:hover{border-color:var(--water);box-shadow:0 8px 22px rgba(21,33,46,.07);transform:translateY(-1px)}
.fcard.dis{opacity:.5;pointer-events:none}
.fico{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;flex:0 0 auto}
.fico.svg{background:#3FA796}.fico.pdf{background:#c0492f}.fico.csv{background:#2E7D72}.fico.json{background:#1C2B3B}.fico.ifc{background:#8a93a3}
.fcard .ft{font-weight:600;font-size:13.5px;line-height:1.2}
.fcard .fs{font-size:11.5px;color:var(--muted)}
.domico{width:13px;height:13px;vertical-align:-2px;opacity:.85}
.dom-chip{display:inline-flex;align-items:center;gap:5px}
.term2 .dom{display:inline-flex;align-items:center;gap:5px}

/* ===== M2 инженерный справочник (ридер) ===== */
.hb-layout{display:grid;grid-template-columns:282px 1fr;gap:36px;align-items:start}
@media(max-width:900px){.hb-layout{grid-template-columns:minmax(0,1fr)}.hb-main{min-width:0}.hb-toc{position:static;max-height:none;min-width:0}}
.hb-toc{position:sticky;top:78px;max-height:calc(100vh - 96px);overflow:auto}
.hb-toc input{width:100%;font-family:var(--font);font-size:14px;padding:9px 12px;border:1px solid var(--line);border-radius:9px}
.hb-toc .tp{margin:14px 0}
.hb-toc .tp-h{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--reper);margin:0 0 6px}
.hb-toc nav a{display:block;font-size:13.5px;color:var(--ink);padding:4px 0 4px 11px;border-left:2px solid var(--line);text-decoration:none}
.hb-toc nav a:hover{border-color:var(--water);color:var(--water-d)}
.hb-parth{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--water-d);border-top:2px solid var(--water);padding-top:12px;margin:42px 0 4px}
.hb-parth:first-child{margin-top:0}
.hb-sec{padding:20px 0 10px;border-bottom:1px solid var(--line);scroll-margin-top:84px}
.hb-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.hb-sec h3{font-size:22px;margin:4px 0 6px}
.hb-lead{color:var(--muted);font-size:15px;margin:0 0 10px}
.hb-body{font-size:15px;line-height:1.65;color:var(--ink)}
.hb-body h2{font-size:20px;font-weight:700;letter-spacing:0;line-height:1.3;color:var(--ink);margin:28px 0 7px}
.hb-body h3{font-size:16.5px;font-weight:700;letter-spacing:0;margin:18px 0 5px}
.hb-body h4{font-size:14.5px;margin:14px 0 4px;color:var(--reper)}
.hb-body p{margin:9px 0}
.hb-body ul,.hb-body ol{margin:9px 0;padding-left:22px}.hb-body li{margin:5px 0}
.hb-body .tbl-wrap{overflow-x:auto;margin:14px 0;border:1px solid var(--line);border-radius:10px}
.hb-body table{border-collapse:collapse;width:100%;font-size:13px;min-width:480px}
.hb-body th,.hb-body td{border:1px solid var(--line);padding:6px 10px;text-align:left;vertical-align:top}
.hb-body th{background:#F2F6F5;font-weight:600;position:sticky;top:0}
.hb-body sub,.hb-body sup{font-size:.74em}
.hb-body figure{margin:18px 0;text-align:center}
.hb-body figure.scheme{background:#FBFCFD;border:1px solid var(--line);border-radius:12px;padding:12px}
.hb-body figure svg{max-width:100%;height:auto}
.hb-body figcaption{font-size:12px;color:var(--muted);margin-top:6px}
.hb-body blockquote{margin:14px 0;padding:11px 15px;background:#F7F9FA;border-left:3px solid var(--water);border-radius:0 9px 9px 0;font-size:14px;color:#33414f}
.hb-body blockquote p{margin:5px 0}
.hb-body blockquote strong{color:var(--water-d)}
.hb-body mjx-container{max-width:100%;overflow-x:auto;overflow-y:hidden}
.hb-body em{color:var(--muted)}
.hb-norms,.hb-rel{font-size:13px;color:var(--muted);margin-top:12px}
.hb-norms a,.hb-rel a{color:var(--water-d)}
.hb-norms{background:#F7F9FA;border-left:3px solid var(--water);padding:8px 12px;border-radius:0 8px 8px 0}

/* ===== M5 база кейсов ===== */
.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:760px){.case-grid{grid-template-columns:1fr}}
.case-card{display:block;border:1px solid var(--line);border-radius:14px;padding:18px 20px;background:#fff;text-decoration:none;color:var(--ink);transition:.15s}
.case-card:hover{border-color:var(--water);box-shadow:0 10px 28px rgba(21,33,46,.08);transform:translateY(-2px)}
.case-card .ct-region{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--water-d)}
.case-card h3{font-size:17px;margin:5px 0 6px;line-height:1.25}
.case-card .ct-task{font-size:13.5px;color:var(--muted);margin:0 0 8px;line-height:1.45}
.case-card .ct-spec{font-size:13px;color:var(--ink);font-weight:600;margin:0 0 8px}
.case-card .chips{display:flex;gap:6px;flex-wrap:wrap}
.case-hero{display:grid;grid-template-columns:340px 1fr;gap:28px;align-items:start;margin:6px 0 10px}
@media(max-width:780px){.case-hero{grid-template-columns:1fr}}
.case-col .dwg svg{width:100%;height:auto;display:block}
/* статистика */
.cc-stats{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px}
.cc-stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 20px;min-width:120px}
.cc-stat b{display:block;font-size:26px;color:var(--water-d);line-height:1.1}
.cc-stat span{font-size:12.5px;color:var(--muted)}
/* фасеты с подписью */
.cc-facetwrap{display:flex;align-items:baseline;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.cc-flabel{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--reper);min-width:88px}
/* сетка карточек с фото */
.cc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(max-width:600px){.cc-grid{grid-template-columns:1fr}}
/* мобильная кнопка «Фильтры» → выезжающая панель-лист (sheet) фасетов.
   Раньше .facets.open показывалась с order:2 — т.е. ПОД всеми карточками (внизу страницы),
   из-за чего на телефоне казалось, что фильтров нет. Теперь на ≤820px панель открывается
   фиксированным листом поверх контента (под шапкой), со своим скроллом и плавающей «Готово».
   Применяется и к M3 ТИМ/САПР, и к M5 «Проекты» (общая разметка .lib-layout/.facets/.fbtn). */
.fbtn{display:none}
.facets-done{display:none}
@media(max-width:820px){
  .fbtn{display:inline-flex}
  .lib-layout>.facets{display:none}
  .lib-layout>.facets.open{display:block;position:fixed;left:0;right:0;top:62px;bottom:0;z-index:65;
    overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;margin:0;padding:18px 20px 92px;
    box-shadow:0 -1px 0 var(--line) inset,0 18px 40px rgba(21,33,46,.18)}
  .facets-done.on{display:inline-flex;position:fixed;left:50%;transform:translateX(-50%);bottom:18px;
    z-index:75;background:var(--water-d);color:#fff;border:none;border-radius:12px;padding:13px 32px;
    font-family:var(--font);font-weight:600;font-size:15px;cursor:pointer;box-shadow:0 10px 30px rgba(21,33,46,.28)}
  .lib-exp{display:none}
}
.cc-card{display:block;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;text-decoration:none;color:var(--ink);transition:.15s}
.cc-card:hover{border-color:var(--water);box-shadow:0 12px 30px rgba(21,33,46,.10);transform:translateY(-3px)}
.cc-img{position:relative;aspect-ratio:16/10;background:#E7ECF1;overflow:hidden}
.cc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:.3s}
.cc-card:hover .cc-img img{transform:scale(1.04)}
.cc-badge{position:absolute;left:10px;top:10px;background:rgba(28,43,59,.86);color:#fff;font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px}
.cc-files{position:absolute;right:10px;bottom:10px;background:rgba(63,167,150,.94);color:#fff;font-size:11px;font-weight:600;padding:4px 9px;border-radius:20px}
.cc-files-block{border-color:#cfe6e0;background:linear-gradient(0deg,#f6fbfa,#fff)}
.cc-img.cc-noimg{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1C2B3B,#2A3F55)}
.cc-img.cc-noimg::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:24px 24px}
.cc-ni{position:relative;text-align:center;color:#cdd8e2;padding:0 18px}
.cc-ni svg{display:block;margin:0 auto 9px;opacity:.92}
.cc-ni b{display:block;font-size:13px;font-weight:600;color:#eaf0f5;letter-spacing:.01em}
.cc-ni span{display:block;font-size:11px;color:#8ca3b8;margin-top:3px}
.cc-body{padding:14px 16px 16px}
.cc-region{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--water-d)}
.cc-body h3{font-size:16px;margin:5px 0 7px;line-height:1.28}
.cc-spec{font-size:13px;color:var(--ink);font-weight:600}
.cc-list{margin:0;padding-left:18px;font-size:14px}.cc-list li{margin:4px 0}
/* галерея */
.cg-hero-wrap{margin:6px 0 4px}
.cg-hero{position:relative;border-radius:14px;overflow:hidden;cursor:zoom-in;max-height:440px;border:1px solid var(--line)}
.cg-hero img{width:100%;max-height:440px;object-fit:cover;display:block}
.cg-banner{position:relative;display:flex;align-items:center;gap:18px;border-radius:14px;border:1px solid var(--line);padding:30px 26px;overflow:hidden;background:linear-gradient(135deg,#1C2B3B,#2A3F55)}
.cg-banner::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:26px 26px}
.cg-banner svg{position:relative;flex:none}
.cg-banner div{position:relative}
.cg-banner b{display:block;font-size:17px;color:#eaf0f5;font-weight:600}
.cg-banner span{display:block;font-size:13px;color:#8ca3b8;margin-top:4px}
.cg-zoom{position:absolute;right:12px;bottom:12px;background:rgba(28,43,59,.8);color:#fff;border-radius:8px;padding:4px 9px;font-size:14px}
.cg-thumbs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.cg-th{width:92px;height:64px;border-radius:8px;overflow:hidden;cursor:pointer;border:1px solid var(--line)}
.cg-th img{width:100%;height:100%;object-fit:cover}
.cg-th:hover{border-color:var(--water)}
/* lightbox */
.lb{position:fixed;inset:0;z-index:90;background:rgba(12,20,28,.92);display:flex;align-items:center;justify-content:center;padding:30px}
.lb img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:8px}
.lb-x{position:absolute;top:18px;right:24px;color:#fff;font-size:28px;cursor:pointer;opacity:.8}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:48px;cursor:pointer;opacity:.7;padding:0 18px;user-select:none}
.lb-prev{left:6px}.lb-next{right:6px}.lb-nav:hover,.lb-x:hover{opacity:1}
.lb-cap{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#d8e0e6;font-size:13px}

/* ===== M1 v2 «База знаний»: навигатор, единые карточки, рельс «слои темы» ===== */
.kbig{position:relative;margin:18px 0 4px;max-width:680px}
.kbig input{width:100%;font-family:var(--font);font-size:16px;padding:14px 16px 14px 44px;border:1px solid var(--line);border-radius:12px}
.kbig-ic{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:18px}
.krolerow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:16px}
@media(max-width:900px){.krolerow{grid-template-columns:repeat(2,1fr)}}
.krole{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.krole b{display:block;font-size:14px;color:var(--ink)}
.krole span{display:block;font-size:11.5px;color:var(--muted);margin:2px 0 7px}
.krl{display:flex;flex-direction:column;gap:3px}
.krl a{font-size:12.5px;color:var(--water-d)}
.ksec{font-size:21px;margin:38px 0 4px;scroll-margin-top:70px}
.kcount{font-size:13px;color:var(--muted);font-weight:400}
.kbadge2{font-size:11px;font-weight:700;background:#eef4f3;color:var(--water-d);padding:2px 8px;border-radius:6px;vertical-align:middle}
/* единая карточка термина (раскрываемая) */
.term2 .t2-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;cursor:pointer}
.term2 .t2-head h4{font-size:15.5px;margin:2px 0 0}
.term2 .t2-en{font-weight:400;font-size:12.5px;color:var(--muted)}
.term2 .t2-tog{font-size:11.5px;color:var(--water-d);white-space:nowrap;flex:none}
.term2.open .t2-tog{color:var(--muted)}
.term2 .t2-body{display:none;margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.term2.open .t2-body{display:block}
.term2 .t2-body>p{font-size:13.5px;color:var(--ink);margin:0 0 8px}
.term2 .t2-full{font-size:13px;color:var(--muted);margin:0 0 10px}
.kxl{display:flex;gap:8px;align-items:baseline;margin:6px 0;font-size:12.5px}
.kxl>span{color:var(--muted);flex:none;min-width:130px}
.kmeta{font-size:11.5px;color:var(--muted);margin-top:8px}
.vok{color:#1f7a45;font-weight:600}.vno{color:#c2792b;font-weight:600}
.krail{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:9px;font-size:12px}
.kr-lab{color:var(--muted)}
.krail a{padding:3px 9px;border-radius:20px;border:1px solid var(--line);color:var(--water-d);background:#fff}
.krail .kr-on{background:var(--water-d);color:#fff;border-color:var(--water-d)}
.krail .kr-off{padding:3px 9px;border-radius:20px;border:1px dashed var(--line);color:#b4bdc8}
.kfb{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:var(--muted)}
.kfb-b{font-size:12px;padding:3px 11px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--water-d);cursor:pointer;font-family:var(--font)}
.kfb-edit{margin-left:auto;color:var(--water-d);cursor:pointer;font-size:12px}
.kfb-thx{color:#1f7a45}
/* C хабы */
.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.hub-grid{grid-template-columns:1fr}}
.hub{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fff}
.hub h4{font-size:16px;margin:0 0 6px}
.hub p{font-size:13px;color:var(--muted);margin:0 0 10px}
.hub-sw{display:flex;flex-wrap:wrap;gap:6px}
.hub-sw a{font-size:11.5px;padding:4px 9px;border-radius:7px;background:var(--paper);border:1px solid var(--line);color:var(--water-d)}
.hub-sw a:hover{border-color:var(--water);background:#fff}
/* D инженерные основы */
.basic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(max-width:760px){.basic-grid{grid-template-columns:1fr}}
.basic{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.basic .b-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 18px;cursor:pointer}
.basic .b-head h4{font-size:15.5px;margin:0}
.basic .b-tog{font-size:11.5px;color:var(--water-d);flex:none}
.basic .b-body{display:none;padding:0 18px 16px}
.basic.open .b-body{display:block}
.basic .b-body{font-size:13.5px;color:var(--ink);line-height:1.6}
.basic .b-m2{margin-top:12px}
.basic .b-m2 a{font-weight:600;color:var(--water-d)}
/* E нормативная карта (карточки) */
.norm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(max-width:760px){.norm-grid{grid-template-columns:1fr}}
.norm{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff}
.norm .n-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ncode{font-family:ui-monospace,Menlo,monospace;font-size:13px;font-weight:700;color:var(--reper)}
.nst{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px}
.nst.ok{background:#e9f5ee;color:#1f7a45}.nst.no{background:#fdeceb;color:#c0392b}.nst.dev{background:#fdf4e8;color:#c2792b}
.norm h4{font-size:14.5px;margin:7px 0}
.norm .nrow{font-size:12.5px;margin:3px 0;color:var(--ink)}.norm .nrow b{color:var(--reper)}
.nks-row{font-size:12px;margin:5px 0}
.nks{display:inline-block;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:2px 7px;margin:2px 4px 2px 0;color:var(--muted)}
/* F ошибки (доп.) */
.err .e-cat{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--clay,#b5603a)}
.err .e-short{font-size:13.5px;font-weight:600;margin:4px 0 8px}
.err .e-chk{color:#1f7a45}.err .e-chk b{color:#1f7a45}
.err .e-links{margin-top:8px;font-size:12.5px}.err .e-links a{color:var(--water-d)}
/* G FAQ */
.faq-list{display:flex;flex-direction:column;gap:8px}
.faq{border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 16px}
.faq summary{cursor:pointer;font-weight:600;font-size:14px;padding:13px 0;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq[open] summary{border-bottom:1px solid var(--line)}
.faq p{font-size:13.5px;color:var(--ink);margin:11px 0 14px}
.qrow{display:flex;gap:10px;margin-bottom:10px}@media(max-width:600px){.qrow{flex-direction:column}}
.qrow input{flex:1;min-width:0}
/* H кейсы-превью */
.caseprev-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:900px){.caseprev-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.caseprev-grid{grid-template-columns:1fr}}
.caseprev{display:block;border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:#fff;color:var(--ink);text-decoration:none;transition:.15s}
.caseprev:hover{border-color:var(--water);transform:translateY(-2px)}
.cp-ind{font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--water-d)}
.caseprev h4{font-size:13.5px;margin:5px 0 6px;line-height:1.3}
.cp-spec{font-size:12px;color:var(--muted)}

/* M1 v2 Phase 2: граф знаний */
.grow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.grow select{font-family:var(--font);font-size:14px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;max-width:340px}
.glegend{display:flex;gap:12px;font-size:12px;color:var(--muted)}
.gl{display:inline-flex;align-items:center;gap:5px}
.gl::before{content:"";width:9px;height:9px;border-radius:50%;display:inline-block}
.gl-t::before{background:#2f8576}.gl-n::before{background:#43566B}.gl-e::before{background:#C9885B}.gl-c::before{background:#2f7a45}
.graphbox{background:linear-gradient(180deg,#fff,#fafcfb);border:1px solid var(--line);border-radius:14px;padding:6px}
.kgraph{width:100%;height:auto;display:block}
.kgraph .gn{cursor:pointer}
.kgraph .gn-t{font-size:11px;fill:var(--reper);pointer-events:none}
.kgraph .gn-c{font-size:13.5px;font-weight:700;fill:var(--ink);pointer-events:none}
.kgraph .gn:hover circle{r:9}
.kgraph .gn:hover .gn-t{fill:var(--water-d);font-weight:600}

/* M1 v2 Phase 2: предметный навигатор /areas/ */
.area-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(max-width:820px){.area-grid{grid-template-columns:1fr}}
.area{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;transition:.15s}
.area:hover{border-color:var(--water);box-shadow:0 12px 30px rgba(21,33,46,.10)}
.area-hero{aspect-ratio:16/7;background-size:cover;background-position:center;background-color:#1C2B3B;position:relative}
.area-hero-x{background-image:linear-gradient(135deg,#1C2B3B,#2A3F55)}
.area-hov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,43,59,0) 32%,rgba(28,43,59,.84));display:flex;align-items:flex-end;padding:16px 20px}
.area-hov h3{color:#fff;font-size:19px;margin:0;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.area-body{padding:16px 22px 20px}
.area-body>p{font-size:13.5px;color:var(--muted);margin:0 0 12px}
.ar-row{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line)}
.ar-ic{flex:none;width:24px;height:24px;border-radius:7px;background:var(--water-bg);color:var(--water-d);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.ar-rt{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--reper);font-weight:700;margin-bottom:3px}

/* единый header: подсветка активного раздела */
.topbar nav a.active{color:#fff}

/* ===== M6 «Экспертный контур»: индикатор доверия ===== */
.trust-plaque{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 2px;padding:6px 10px;
  border:1px solid var(--line);border-radius:9px;background:#fbfcfd;font-size:12px;color:var(--reper);cursor:pointer;line-height:1.45;transition:.14s}
.trust-plaque:hover{border-color:#cfe3df;background:#f4faf8}
.tp-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;font-weight:800;font-size:11px;color:#fff;background:var(--reper)}
.tl-A .tp-badge{background:#1C2B3B}.tl-B .tp-badge{background:#2f8576}.tl-C .tp-badge{background:#43566B}.tl-D .tp-badge{background:#C9885B}.tl-E .tp-badge{background:#8a93a6}
.tp-axis{display:inline-flex;align-items:center;gap:5px}
.tp-lbl{color:var(--ink);font-weight:600}
.tp-sep{color:var(--line)}
.tp-stat{font-weight:700}
.ts-awaiting .tp-stat,.ts-draft .tp-stat,.ts-review .tp-stat{color:#b4791f}
.ts-verified .tp-stat{color:#1f7a45}
.ts-archived .tp-stat{color:var(--muted)}
.tp-ver{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--muted)}
.tp-rev{color:var(--water-d)}
.tp-more{margin-left:4px;color:var(--water-d);font-weight:600;text-decoration:underline}

.trust-modal-bg{position:fixed;inset:0;background:rgba(15,25,35,.55);display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;z-index:1000;overflow:auto}
.trust-modal{position:relative;background:#fff;border-radius:16px;max-width:680px;width:100%;padding:26px 28px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.trust-x{position:absolute;top:12px;right:14px;border:none;background:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer}
.tc h3{margin:6px 0 4px}
.tc-axes{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:14px 0}
.tc-axis-t{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--reper);font-weight:700;margin-bottom:8px}
.tc-srow{display:flex;align-items:center;gap:8px;padding:4px 0;color:var(--muted);font-size:13px}
.tc-srow.on{color:var(--ink);font-weight:600}
.tc-srow .tp-badge{background:#aeb6c2}.tc-srow.on .tp-badge{background:#1C2B3B}
.tc-note{margin-top:8px;font-size:12px;color:var(--muted);font-style:italic}
.tc-status{display:inline-block;padding:5px 11px;border-radius:8px;font-weight:700;font-size:13px;background:#f5f6f8;color:var(--reper)}
.tc-status.ts-verified{background:#e9f5ee;color:#1f7a45}
.tc-status.ts-awaiting,.tc-status.ts-review,.tc-status.ts-draft{background:#fdf1ea;color:#b4791f}
.tc-status.ts-archived{background:#eef0f3;color:var(--muted)}
.tc-meta{margin-top:8px;font-size:12.5px;color:var(--muted)}
.tc-sec{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.tc-sec h5{margin:0 0 8px;font-size:13px;color:var(--reper)}
.tc-vers{margin:0;padding-left:18px;font-size:13px;color:var(--muted)}
.tc-review{border-left:3px solid var(--water);padding:6px 0 6px 12px;margin-bottom:10px}
.tc-rv-h{font-size:13.5px}
.tc-verdict{background:var(--water-bg);color:var(--water-d);border-radius:5px;padding:1px 7px;font-size:11.5px;font-weight:700}
.tc-coi{font-size:12px;color:var(--muted);margin-top:3px}
.tc-empty{color:var(--muted);font-size:13.5px}
.tc-actions{margin-top:18px}
.tc-form{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.tc-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--reper);font-weight:600}
.tc-form input,.tc-form select,.tc-form textarea{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}
.tc-form textarea{resize:vertical}
.tc-ok{color:#1f7a45;font-weight:600}.tc-err{color:#c0392b}.tc-msg{font-size:13px}

/* ===== M6: страница экспертного контура / совета ===== */
.cncl-three{grid-template-columns:repeat(3,1fr)}
.cncl-three .eyebrow{color:var(--water-d)}
.axis-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:8px 0 4px}
.axis-h{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--reper);font-weight:700;margin-bottom:10px}
.axis-legend{display:flex;flex-direction:column;gap:8px}
.leg-row{display:flex;align-items:flex-start;gap:9px;font-size:13.5px}
.leg-row b{color:var(--ink)}
.leg-ex{display:block;font-size:12px;color:var(--muted);margin-top:1px}
.leg-st{display:inline-block;padding:3px 9px;border-radius:7px;font-weight:700;font-size:12.5px;background:#f5f6f8;color:var(--reper);white-space:nowrap}
.leg-st.ts-verified{background:#e9f5ee;color:#1f7a45}
.leg-st.ts-awaiting,.leg-st.ts-review,.leg-st.ts-draft{background:#fdf1ea;color:#b4791f}
.leg-st.ts-archived{background:#eef0f3;color:var(--muted)}
.cncl-principles{margin:20px 0 0;padding-left:20px;color:var(--ink);font-size:14px;line-height:1.6}
.cncl-principles li{margin-bottom:8px}
.council-empty{border:1px dashed #cbd5dd;border-radius:14px;padding:24px 26px;background:#fbfcfd}
.ce-badge{display:inline-block;background:#fdf1ea;color:#b4791f;font-weight:700;font-size:12.5px;padding:5px 12px;border-radius:8px;margin-bottom:12px}
.ce-roles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0}
.ce-role{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}
.ce-role b{display:block;margin-bottom:3px}.ce-role span{font-size:12.5px;color:var(--muted)}
.expert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.expert-card{display:block;border:1px solid var(--line);border-radius:13px;padding:16px 18px;background:#fff;color:inherit;text-decoration:none;transition:.14s}
.expert-card:hover{border-color:#cfe3df;box-shadow:0 6px 18px rgba(28,43,59,.07)}
.ec-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.ec-top img,.ec-ava{width:46px;height:46px;border-radius:50%;object-fit:cover}
.ec-ava{display:flex;align-items:center;justify-content:center;background:var(--water-bg);color:var(--water-d);font-weight:800;font-size:20px}
.ec-role{display:block;font-size:12px;color:var(--water-d);text-transform:uppercase;letter-spacing:.03em;font-weight:700}
.ec-cred{font-size:13px;color:var(--ink);margin-bottom:3px}
.ec-org{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.ec-doms{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.echip{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:2px 8px;font-size:11.5px;color:var(--reper)}
.coi-badge{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:7px}
.coi-ok{background:#e9f5ee;color:#1f7a45}.coi-link{background:#fdf1ea;color:#b4791f}
.reg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.reg-card{border:1px solid var(--line);border-radius:13px;padding:16px 20px;background:#fff}
.reg-card h4{margin:0 0 8px}.reg-card ul{margin:0;padding-left:18px}
.reg-card li{margin-bottom:6px;font-size:13.5px}.reg-card p{margin:0;font-size:13.5px;color:var(--ink)}
.expert-head{display:flex;gap:18px;align-items:flex-start}
.eh-photo,.eh-ava{width:84px;height:84px;border-radius:14px;object-fit:cover;flex:none}
.eh-ava{display:flex;align-items:center;justify-content:center;background:var(--water-bg);color:var(--water-d);font-weight:800;font-size:34px}
@media(max-width:760px){.cncl-three,.axis-cols,.tc-axes,.reg-grid,.ce-roles{grid-template-columns:1fr}}

/* ===== Шапка: группированная навигация (выпадашки) + мобильный бургер ===== */
.topbar nav{gap:2px}
.nv-top{display:inline-flex;align-items:center;gap:5px;color:#c2cdd8;font-size:14px;font-weight:500;font-family:inherit;background:none;border:none;cursor:pointer;padding:8px 11px;border-radius:8px;white-space:nowrap;position:relative;line-height:1.2}
.nv-top:hover{color:#fff;background:rgba(255,255,255,.07);text-decoration:none}
.nv-caret{font-size:9px;opacity:.65;margin-top:1px}
a.nv-top.active,.nv-group.active>.nv-top{color:#fff}
a.nv-top.active::after,.nv-group.active>.nv-top::after{content:"";position:absolute;left:11px;right:11px;bottom:3px;height:2px;border-radius:2px;background:var(--water)}
.nv-group{position:relative}
.nv-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:236px;background:#16222e;border:1px solid #2c3d4e;border-radius:12px;padding:6px;box-shadow:0 18px 44px rgba(0,0,0,.45);display:none;z-index:30}
.nv-group:hover .nv-menu,.nv-group.open .nv-menu{display:block}
.nv-menu.mega{min-width:470px;right:0;left:auto}
.nv-group:hover .nv-menu.mega,.nv-group.open .nv-menu.mega{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.nv-menu a{display:flex;align-items:center;gap:9px;color:#c2cdd8;font-size:13.5px;padding:9px 11px;border-radius:8px;font-weight:500}
.nv-menu a:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.nv-menu a.active{background:rgba(63,167,150,.16);color:#fff}
.nv-menu a.active::after{content:none}
/* Десктоп-навигация: широкая (разделы строкой) ↔ узкая (единая «Разделы ▾»).
   .nv-wide/.nv-narrow — обёртки в desktopHTML; переключаются по ширине, мобильный бургер не трогается. */
.nv-wide,.nv-narrow{display:inline-flex;align-items:center;gap:2px}
@media(min-width:1240px){.nv-narrow{display:none}}
@media(max-width:1239px){.nv-wide{display:none}}
.nv-code{font-size:10px;font-weight:700;color:#7d8aa0;min-width:22px}
.nv-soon{margin-left:auto;font-size:10px;font-weight:600;color:#e0a83a;background:rgba(216,160,31,.16);padding:1px 7px;border-radius:6px}

.nav-burger{display:none;margin-left:auto;background:none;border:none;cursor:pointer;width:42px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.nav-burger span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:.22s}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.nav-mobile{display:none;position:fixed;top:62px;left:0;right:0;bottom:0;background:#0f1722;z-index:19;overflow-y:auto;padding:4px 0 40px;-webkit-overflow-scrolling:touch}
.nav-mobile.open{display:block}
.nav-mobile .nm-flat,.nav-mobile .nm-sec a{display:flex;align-items:center;gap:10px;color:#dfe6ee;font-size:15.5px;padding:12px 22px;border-bottom:1px solid rgba(255,255,255,.05)}
.nav-mobile a:hover,.nav-mobile a.active{color:#fff;text-decoration:none;background:rgba(255,255,255,.04)}
.nav-mobile a.active{box-shadow:inset 3px 0 0 var(--water)}
.nm-sec{padding-top:2px}
.nm-sec-h{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#69788e;font-weight:700;padding:13px 22px 3px}
.nm-code{font-size:11px;font-weight:700;color:#7d8aa0;min-width:24px}
.nm-soon{margin-left:auto;flex:none;font-size:10.5px;font-weight:700;color:#2a1f08;background:#cda44e;padding:2px 9px;border-radius:20px}
.nm-user{padding:10px 22px;color:#8b97a8;font-size:13px}
.nm-reg{color:var(--water)!important}

@media(max-width:900px){
  .topbar .row{gap:12px}
  .topbar nav{display:none}
  .topbar .right{display:none}
  .nav-burger{display:flex}
}
@media(max-width:560px){
  .wrap{padding:0 16px}
  .hero{padding:46px 0 38px}
  .hero h1{font-size:30px}
  .hero p{font-size:16px}
}

/* ===== M6 Phase 2: рабочий стол рецензента ===== */
.rv-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:18px}
.rv-tab{background:none;border:none;border-bottom:2px solid transparent;padding:8px 4px;margin-bottom:-1px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer}
.rv-tab.on{color:var(--ink);border-bottom-color:var(--water)}
.rv-list{display:flex;flex-direction:column;gap:12px}
.rv-card{border:1px solid var(--line);border-radius:13px;padding:15px 18px;background:#fff}
.rv-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.rv-h b{font-size:15px}
.rv-et{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--water-d);font-weight:700;margin-right:8px}
.rv-meta{font-size:12.5px;color:var(--muted);margin:6px 0 10px}
.rv-acts{display:flex;flex-wrap:wrap;gap:8px}
.rv-mini{padding:6px 12px;font-size:13px}
.rv-mini:disabled{opacity:.45;cursor:not-allowed}
.rv-op{border:1px dashed #cbd5dd;border-radius:12px;padding:14px 18px;background:#fbfcfd;margin-bottom:18px}
.rv-op h4{margin:0 0 10px}
.rv-opform{display:flex;flex-wrap:wrap;gap:8px}
.rv-opform select,.rv-opform input{font:inherit;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}
.rv-opform input[name=ref]{flex:1;min-width:220px}

/* ============================================================
   MOBILE OVERFLOW GUARD (2026-07-01)
   Фикс «обрезания» контента на узких экранах (iPhone, ~390px).
   Корень: html,body{overflow-x:clip} прячет overflow, а гибкие
   grid-колонки (minmax(auto,1fr)) раздуваются до min-content
   широких блоков (таблицы min-width:480, чертежи, длинные токены),
   из-за чего соседний текст молча режется по правому краю.
   Лечение: гибкой колонке minmax(0,1fr) + детям min-width:0;
   узким input'ам и 2-колоночным сеткам — мобильные брейки.
   Все брейки НИЖЕ существующих 760/780/820/900 → десктоп/планшет
   не затрагиваются; min-width:0 на flex/grid-детях визуально
   нейтрален на широких экранах.
   ============================================================ */
.hb-main,.hb-toc,.term2,.fcard,.tc-srow,.case-col,.term2 .t2-head h4{min-width:0}
.keyfig li span,.fcard .ft{min-width:0;overflow-wrap:anywhere}
/* TOC справочника на мобильном — обычный блок НАД контентом, а НЕ sticky height-capped
   scroll-box. Правило .hb-toc{position:sticky;max-height;overflow:auto} (выше по файлу,
   безусловное) перебивало мобильный сброс из @media(900) по порядку каскада → при скролле
   sticky-TOC оставался приклеен к верху и основной контент наезжал на него (overlap). */
@media(max-width:900px){.hb-toc{position:static;max-height:none;overflow:visible}}
@media(max-width:560px){
  .lib-toolbar input{min-width:0;flex-basis:100%}
  .rv-opform input[name=ref]{min-width:0;flex-basis:100%}
  #iForm input{min-width:0!important}
  .row2{grid-template-columns:1fr}
  .kxl{flex-wrap:wrap}
  .kxl>span{min-width:0}
  .compare-bar{max-width:calc(100% - 16px);padding:11px 14px;gap:10px}
}
@media(max-width:520px){.krolerow{grid-template-columns:1fr}}
@media(max-width:430px){.files{grid-template-columns:1fr}}
