:root{
  --bg:#1b1d21;--bg-2:#212429;--surface:#24272c;--line:#2f3338;--line-2:#3c4047;
  --text:#e8e9eb;--text-2:#b9bdc4;--muted:#868b94;--brass:#d6a64a;--ok:#5fbf8a;--err:#e5706a;--warn:#d6a64a;
  --page:var(--bg);--alt:#212429;--card:#24272c;--ink:var(--text);--ink-2:var(--text-2);--ink-3:var(--muted);
  --accent:#d6a64a;--accent-2:#c2923a;--accent-ink:#0d0e10;--accent-soft:#3a3222;
  --dark:#1f2226;--dark-2:#24272c;--dark-line:#33373d;--on-dark:#e8e9eb;--on-dark-2:#868b94;--hi:#c3c7ce;--hi-2:#cdb37a;
  --pipe:#30343a;--node:#1d2024;--good:#5fbf8a;--good-ink:#5fbf8a;--good-soft:#1e2f26;--bad:#e5706a;--bad-ink:#e5706a;--bad-soft:#35201e;--warn-soft:#3a3222;
  --arch-line:#454a51;--arch-panel:rgba(255,255,255,.018);--arch-box:rgba(255,255,255,.025);--arch-arrow:#4a4f57;--arch-arrow-on:#c3c7ce;
  --r:6px;--r-sm:6px;--shadow:none;--bw:1px;
  --sans:"Golos Text",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit;cursor:pointer;color:inherit}
.in{max-width:1240px;margin:0 auto;padding:0 32px}
h1,h2,h3{font-weight:500;letter-spacing:-.01em}
h1{font-size:44px;line-height:1.15;max-width:760px}
h2{font-size:34px;line-height:1.2;max-width:820px}
h3{font-size:17px;font-weight:600}
p.lead{font-size:18px;color:var(--text-2);max-width:720px;margin-top:16px}
.tag{display:inline-block;font-size:12px;font-weight:500;color:#d6b56a;background:#3a3222;border-radius:4px;padding:2px 8px;margin-bottom:14px;letter-spacing:.02em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;border-radius:6px;font-size:15px;font-weight:500;text-decoration:none;border:1px solid var(--line-2);background:transparent;color:var(--text);transition:border-color .15s,background .15s}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--text);color:#0d0e10;border-color:var(--text)}
.btn.primary:hover{background:#fff}
section{padding:96px 0;border-top:1px solid var(--line)}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(27,29,33,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header .in{display:flex;align-items:center;gap:36px;height:64px}
.logo svg{height:24px;width:auto;fill:var(--text);display:block}
nav.main{display:flex;align-items:center;gap:26px;font-size:15px;color:var(--text-2)}
nav.main a{text-decoration:none}nav.main a:hover{color:var(--text)}
header .btn{margin-left:auto;height:38px;font-size:14px}

/* hero */
.hero{padding:72px 0 0;border-top:0}
.hero .ctas{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.stack{margin-top:56px;padding:20px 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 28px;align-items:baseline;color:var(--muted);font-size:14px}
.stack b{font-weight:500;color:var(--text-2);margin-right:6px}

.pipe-card{color:var(--on-dark)}
.pipe-card{margin-top:48px;background:var(--dark-2);border:var(--bw) solid var(--dark-line);border-radius:var(--r);padding:18px 18px 14px}
.pipe-top{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;margin-bottom:10px}
.pipe-top h3{font-size:15px;font-weight:600}
.pipe-top h3 small{display:block;font-weight:400;color:var(--on-dark-2);font-size:13px}
.seg{display:inline-flex;border:var(--bw) solid var(--dark-line);border-radius:var(--r-sm);padding:3px;background:rgba(255,255,255,.03)}
.seg button{border:0;background:transparent;color:var(--on-dark-2);font-size:13px;font-weight:600;padding:8px 12px;border-radius:calc(var(--r-sm) - 2px)}
.seg button.on{background:var(--accent);color:var(--accent-ink)}
#pipe{width:100%;display:block}
.pipe-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.ps{border:1px solid var(--dark-line);border-radius:var(--r-sm);padding:10px 12px}
.ps span{display:block;font-size:12px;color:var(--on-dark-2)}
.ps b{font-family:var(--mono);font-size:20px;font-weight:600}
.ps b.good{color:var(--good)}.ps b.bad{color:var(--bad)}
.pipe-tip{position:fixed;z-index:60;max-width:260px;background:var(--card);color:var(--ink);border:var(--bw) solid var(--line-2);border-radius:var(--r-sm);padding:10px 12px;font-size:13px;box-shadow:0 10px 30px rgba(0,0,0,.3);pointer-events:none;opacity:0;transition:opacity .12s}
.pipe-tip b{display:block;margin-bottom:2px}
.pipe-hint{font-size:12px;color:var(--on-dark-2);margin-top:8px}

.card{background:var(--card);border:var(--bw) solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.est{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:600;color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn);border-radius:4px;padding:1px 5px;vertical-align:middle;letter-spacing:.04em}
/* scenario */
.scen{margin-top:36px;background:var(--dark);border:var(--bw) solid var(--dark-line);border-radius:var(--r);padding:16px;color:var(--on-dark);box-shadow:var(--shadow)}
.scen-top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:4px 4px 14px}
.clock{display:flex;gap:22px;flex-wrap:wrap}
.clock div span{display:block;font-size:12px;color:var(--on-dark-2)}
.clock div b{font-family:var(--mono);font-size:22px;font-weight:600}
.clock div b.bad{color:var(--bad)}.clock div b.good{color:var(--good)}
.scen-body{display:grid;grid-template-columns:1fr 1.15fr;gap:14px}
.scard{background:var(--dark-2);border:1px solid var(--dark-line);border-radius:var(--r-sm);padding:14px}
.scard h4{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-2);margin-bottom:10px;font-family:var(--mono)}
#vib{width:100%;height:150px;display:block}
.feed{display:flex;flex-direction:column;gap:8px;min-height:340px}
.ev{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:10px;border-radius:var(--r-sm);border:1px solid var(--dark-line)}
.ev .t{font-family:var(--mono);font-size:12px;color:var(--on-dark-2);padding-top:2px}
.ev b{display:block;font-size:14px;font-weight:600}
.ev span{font-size:13px;color:var(--on-dark-2)}
.ev .who{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:4px;padding:1px 6px;margin-bottom:4px;font-family:var(--mono);border:1px solid}
.who.sys{color:var(--good)}
.who.man{color:var(--hi)}
.who.bad{color:var(--bad)}
.ev.bad{border-color:var(--bad)}
.ev.human{border-color:var(--accent);border-width:2px}
.sign{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.sign button{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:600;padding:7px 10px;border-radius:var(--r-sm)}
.sign button.done{background:transparent;border-color:var(--good);color:var(--good);cursor:default}
.empty{font-size:14px;color:var(--on-dark-2);padding:30px 10px;text-align:center;border:1px dashed var(--dark-line);border-radius:var(--r-sm)}
#bowtie{width:100%;height:auto;display:block;margin-top:6px}
#bowtie text{fill:var(--on-dark);font-family:var(--sans)}
#bowtie .box{fill:var(--dark);stroke:var(--dark-line)}
#bowtie .bar{fill:var(--dark-line)}
#bowtie .link{stroke:var(--dark-line);stroke-width:2;fill:none}
#bowtie .top{fill:var(--dark);stroke:var(--hi);stroke-width:2}
#bowtie .lbl{fill:var(--on-dark-2);font-size:10px}
#bowtie.ok #bt-b1{fill:var(--good)} #bowtie.ok .lbl{fill:var(--good)}
#bowtie.bad #bt-b1{fill:var(--bad)} #bowtie.bad .lbl{fill:var(--bad)} #bowtie.bad .top{stroke:var(--bad)} #bowtie.bad #bt-c1{stroke:var(--bad);fill:var(--bad-soft)} #bowtie.bad #bt-c1t{fill:var(--bad-ink)}
.scen-note{font-size:12px;color:var(--on-dark-2);padding:12px 4px 2px}

/* calc */
.calc{display:grid;grid-template-columns:1fr 1.15fr;gap:20px;margin-top:40px;align-items:start}
.sliders{padding:20px}
.sl{padding:12px 0;border-bottom:1px solid var(--line)}
.sl:last-child{border-bottom:0}
.sl label{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--ink-2)}
.sl label b{font-family:var(--mono);color:var(--ink);font-weight:600}
.sl input[type=range]{width:100%;margin-top:8px;accent-color:var(--accent)}
.res{padding:22px}
.res .big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.res .big b{font-size:clamp(44px,6vw,64px);font-weight:800;letter-spacing:-.03em;color:var(--accent);line-height:1}
.res .big span{font-size:16px;color:var(--ink-3)}
.res .sub{font-size:14px;color:var(--ink-3);margin-top:6px}
.bars{margin-top:20px}
.bar{display:grid;grid-template-columns:1fr 70px;gap:12px;align-items:center;padding:8px 0}
.bar .lbl{font-size:13px;color:var(--ink-2);margin-bottom:5px}
.bar .track{height:10px;background:var(--alt);border-radius:6px;overflow:hidden}
.bar .fill{height:100%;background:var(--accent);border-radius:6px;transition:width .35s}
.bar .val{font-family:var(--mono);font-weight:600;text-align:right;font-size:14px}
.bar .f{grid-column:1/-1;font-family:var(--mono);font-size:11px;color:var(--ink-3);max-height:0;overflow:hidden;transition:max-height .2s}
.bar:hover .f{max-height:40px}
.calc-note{font-size:12px;color:var(--ink-3);margin-top:16px}


/* features list */
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 48px;margin-top:44px}
.feat p{font-size:15px;color:var(--text-2)}
.feat p b{color:var(--text);font-weight:600}

/* DQ lab */
.lab{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;margin-top:40px;align-items:start}
.box{border:1px solid var(--line);border-radius:6px;background:var(--bg-2);overflow:hidden}
.box-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line)}
.box-h b{font-weight:500;font-size:15px}
.box-h small{display:block;color:var(--muted);font-size:13px}
.rules{display:flex;flex-wrap:wrap;gap:6px 18px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px;color:var(--text-2)}
.rules label{display:inline-flex;gap:7px;align-items:center;cursor:pointer}
.rules input{accent-color:var(--brass)}
.tw{overflow-x:auto}
table.raw{width:100%;border-collapse:collapse;min-width:640px;font-size:13px}
table.raw th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:10px 14px;border-bottom:1px solid var(--line)}
table.raw td{padding:10px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12.5px;transition:background .2s}
table.raw td.src{font-family:var(--sans);color:var(--muted);font-size:13px}
table.raw tr.scan td{background:#2a2e34}
table.raw tr.bad td{background:#35201e}
table.raw tr.bad td.hit{color:var(--err)}
.st{font-family:var(--sans);font-size:13px;display:inline-block;min-width:200px}
.st.ok{color:var(--ok)}.st.bad{color:var(--err)}.st.wait{color:var(--muted)}
.note{font-size:13px;color:var(--muted);padding:12px 16px}
pre.ddql{font-family:var(--mono);font-size:12.5px;line-height:1.7;padding:16px;color:var(--text-2);overflow-x:auto;min-height:160px}
pre.ddql .c{color:var(--muted)}pre.ddql .k{color:#9fb3d1}pre.ddql .s{color:#cdb37a}pre.ddql .f{color:#9fcfb3}
.pass{padding:4px 16px 16px}
.pass .row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--text-2)}
.pass .row b{font-family:var(--mono);font-weight:400;color:var(--text)}
.verdict{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--muted)}
.stamp{font-family:var(--mono);font-size:12px;letter-spacing:.06em;border:1px solid var(--line-2);color:var(--muted);padding:5px 10px;border-radius:3px}
.stamp.ok{border-color:var(--ok);color:var(--ok)}.stamp.warn{border-color:var(--warn);color:var(--warn)}.stamp.bad{border-color:var(--err);color:var(--err)}

/* solutions table */
table.sol{width:100%;border-collapse:collapse;margin-top:40px}
table.sol td{padding:22px 16px 22px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:15px;color:var(--text-2)}
table.sol tr:first-child td{border-top:1px solid var(--line)}
table.sol td:first-child{width:28%;color:var(--text);font-size:17px;font-weight:500}
table.sol td:last-child{width:170px;text-align:right;padding-right:0;font-size:14px}
table.sol .st2{color:var(--muted)}
table.sol a{color:var(--brass);text-decoration:none}
table.sol a:hover{text-decoration:underline}

/* demo */
.demo-hints{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 16px}
.demo-hints button{border:1px solid var(--line-2);background:transparent;border-radius:6px;padding:8px 12px;font-size:13px;color:var(--text-2);text-align:left;max-width:380px;line-height:1.4}
.demo-hints button:hover{border-color:var(--muted);color:var(--text)}
.demo-hints b{font-weight:600;color:var(--text)}
.demo-cap{margin-top:14px;font-size:14px;color:var(--muted)}
.demo-cap b{color:var(--text);font-weight:500;margin:0 8px 0 4px}
.wr-frame{box-shadow:none}

/* ops */
.ops{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:40px;border-top:1px solid var(--line)}
.ops div{padding:22px 24px 0 0}
.ops h3{margin-bottom:8px}
.ops p{font-size:14px;color:var(--text-2)}

/* faq */
.faq{margin-top:36px;max-width:900px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;font-size:17px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:4px;top:16px;font-size:22px;color:var(--muted);font-weight:300}
.faq details[open] summary:after{content:"−"}
.faq details p{padding:0 0 20px;color:var(--text-2);font-size:15px;max-width:760px}

/* cta + footer */
.cta{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.cta .ctas{display:flex;gap:12px;flex-wrap:wrap}
footer{border-top:1px solid var(--line);padding:56px 0 40px;font-size:14px;color:var(--muted)}
.fcols{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px}
.fcols h4{font-size:14px;font-weight:500;color:var(--text);margin-bottom:12px}
.fcols ul{list-style:none}
.fcols li{padding:4px 0}
.fcols a{text-decoration:none}.fcols a:hover{color:var(--text)}
.req{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 28px;font-size:13px}

@media (max-width:1060px){
  nav.main{display:none}
  .lab,.calc,.scen-body{grid-template-columns:1fr}
  .pipe-stats{grid-template-columns:1fr 1fr}
  .feat{grid-template-columns:1fr 1fr}
  .ops{grid-template-columns:1fr 1fr}
  .fcols{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .in{padding:0 16px}
  h1{font-size:32px}h2{font-size:26px}
  section{padding:64px 0}
  .feat,.ops,.fcols{grid-template-columns:1fr}
  table.sol td{display:block;width:auto!important;text-align:left!important;padding:4px 0}
  table.sol tr{display:block;padding:16px 0;border-bottom:1px solid var(--line)}
  table.sol td{border:0!important}
}

/* ===== header dropdown ===== */
.dd{position:relative;display:flex;align-items:center;height:64px}
.dd>a:after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-3px);margin-left:8px;opacity:.6}
.dd-menu{display:none;position:absolute;top:58px;left:-14px;min-width:300px;background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:6px;box-shadow:0 16px 40px rgba(0,0,0,.45)}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}
.dd-menu a{display:block;padding:9px 12px;border-radius:4px;color:var(--text-2);font-size:14px;line-height:1.35}
.dd-menu a small{display:block;color:var(--muted);font-size:12px}
.dd-menu a:hover{background:var(--bg-2);color:var(--text)}
.dd-menu hr{border:0;border-top:1px solid var(--line);margin:6px 4px}

/* ===== product pages ===== */
.crumbs{font-size:13px;color:var(--muted);margin-bottom:26px}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--text)}
.crumbs i{font-style:normal;margin:0 8px;opacity:.5}
.p-hero{padding:48px 0 56px;border-top:0}
.p-hero .ctas{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.p-meta{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:36px;padding-top:18px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.p-meta b{color:var(--text-2);font-weight:500}
.doc{display:grid;grid-template-columns:230px minmax(0,1fr);gap:56px;align-items:start}
.toc{position:sticky;top:90px;font-size:14px;border-left:1px solid var(--line)}
.toc .t{font-size:12px;color:var(--muted);padding:0 0 10px 14px}
.toc a{display:block;padding:6px 0 6px 14px;margin-left:-1px;border-left:1px solid transparent;color:var(--muted);text-decoration:none;line-height:1.35}
.toc a:hover,.toc a.on{color:var(--text);border-left-color:var(--brass)}
.prose{max-width:780px;color:var(--text-2);font-size:16px}
.prose h3{color:var(--text);font-size:22px;font-weight:500;margin:48px 0 14px;scroll-margin-top:90px;line-height:1.3}
.prose h3:first-child{margin-top:0}
.prose h3 strong{font-weight:500}
.prose p{margin:0 0 14px}
.prose strong{color:var(--text);font-weight:600}
.prose ul,.prose ol{margin:0 0 20px;padding-left:22px}
.prose li{margin:7px 0}
.prose li>p{margin:0 0 6px}
.prose ol>li::marker{color:var(--brass)}
.prose ul>li::marker{color:var(--muted)}
.rel{display:grid;grid-template-columns:repeat(3,1fr);column-gap:32px;margin-top:32px;border-top:1px solid var(--line)}
.rel a{display:block;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none}
.rel a b{display:block;font-weight:500;color:var(--text)}
.rel a span{font-size:14px;color:var(--muted)}
.rel a:hover b{color:var(--brass)}

/* widgets */
.w{border:1px solid var(--line);border-radius:6px;background:var(--bg-2);margin-top:32px;overflow:hidden}
.w-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.w-col{padding:22px}
.w-col+.w-col{border-left:1px solid var(--line)}
.w-h{font-size:13px;color:var(--muted);margin-bottom:10px}
.w-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--text-2)}
.w-row b{font-family:var(--mono);font-weight:400;color:var(--text);text-align:right}
.w-big{font-size:44px;font-weight:500;letter-spacing:-.02em;line-height:1.1;color:var(--text);margin:4px 0 14px}
.w-big small{font-size:16px;color:var(--muted);margin-left:8px;letter-spacing:0}
.w-note{font-size:13px;color:var(--muted);margin-top:14px}
.w-badge{display:inline-block;font-size:12px;padding:3px 9px;border-radius:4px;border:1px solid var(--line-2);color:var(--muted)}
.w-badge.ok{border-color:var(--ok);color:var(--ok)}.w-badge.bad{border-color:var(--err);color:var(--err)}.w-badge.warn{border-color:var(--warn);color:var(--warn)}
.w-list{list-style:none;margin:0;padding:0}
.w-list li{padding:8px 0 8px 18px;border-bottom:1px solid var(--line);font-size:14px;color:var(--text-2);position:relative}
.w-list li:before{content:"";position:absolute;left:0;top:16px;width:8px;height:2px;background:var(--muted)}
.w-list li.bad{color:var(--err)}.w-list li.bad:before{background:var(--err)}
.w-list li.ok:before{background:var(--ok)}
.chk label{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--text-2);cursor:pointer}
.chk label small{display:block;color:var(--muted);font-size:12px}
.chk input{accent-color:var(--brass);margin-top:4px}
.w select{background:var(--bg);color:var(--text);border:1px solid var(--line-2);border-radius:6px;padding:9px 10px;font:inherit;font-size:14px;width:100%}
.route{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;color:var(--text-2)}
.route span{border:1px solid var(--line-2);border-radius:4px;padding:4px 8px}
.route i{font-style:normal;color:var(--muted)}
.steps{display:flex;gap:0;border-bottom:1px solid var(--line);overflow-x:auto}
.steps div{flex:1;min-width:120px;padding:14px 16px;font-size:13px;color:var(--muted);border-right:1px solid var(--line);white-space:nowrap}
.steps div:last-child{border-right:0}
.steps div b{display:block;font-family:var(--mono);font-weight:400;font-size:11px;margin-bottom:2px}
.steps div.done{color:var(--text-2)}.steps div.done b{color:var(--ok)}
.steps div.cur{color:var(--text);background:var(--surface);box-shadow:inset 0 -2px 0 var(--brass)}
.log{font-family:var(--mono);font-size:12px;color:var(--muted);max-height:260px;overflow:auto}
.log div{padding:6px 0;border-bottom:1px solid var(--line)}
.log div b{color:var(--text-2);font-weight:400}
#bt2 .bx{fill:var(--bg);stroke:var(--line-2)}
#bt2 text{fill:var(--text-2);font-family:var(--sans);font-size:12px}
#bt2 .ln{stroke:var(--line-2);stroke-width:2;fill:none}
#bt2 .ln.open{stroke:var(--err)}
#bt2 .bar{cursor:pointer}
#bt2 .bar rect{fill:var(--ok);transition:fill .2s}
#bt2 .bar.fail rect{fill:var(--err)}
#bt2 .bar text{fill:#0d0e10;font-family:var(--mono);font-size:11px;font-weight:600}
#bt2 .top{fill:var(--surface);stroke:var(--brass);stroke-width:2}
.barlist button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:8px 0;font-size:14px;color:var(--text-2)}
.barlist button i{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--ok);white-space:nowrap}
.barlist button.fail i{color:var(--err)}
.barlist button:hover{color:var(--text)}
#gtmChart{width:100%;height:180px;display:block}

@media (max-width:1060px){
  .doc{grid-template-columns:1fr}.toc{display:none}
  .w-grid{grid-template-columns:1fr}.w-col+.w-col{border-left:0;border-top:1px solid var(--line)}
  .rel{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){.rel{grid-template-columns:1fr}.w-big{font-size:34px}}
.prose h4{color:var(--text);font-size:17px;font-weight:600;margin:26px 0 10px}
.prose h4 strong{font-weight:600}
.prose li>h4{margin:14px 0 6px;font-size:16px}

/* ===== mobile menu ===== */
.burger{display:none;width:40px;height:38px;border:1px solid var(--line-2);border-radius:6px;background:transparent;align-items:center;justify-content:center;flex:none}
.burger span,.burger span:before,.burger span:after{display:block;width:16px;height:1.5px;background:var(--text);position:relative;transition:transform .2s,background .2s}
.burger span:before,.burger span:after{content:"";position:absolute;left:0}
.burger span:before{top:-5px}.burger span:after{top:5px}
body.menu-open .burger span{background:transparent}
body.menu-open .burger span:before{transform:translateY(5px) rotate(45deg)}
body.menu-open .burger span:after{transform:translateY(-5px) rotate(-45deg)}
.mnav{display:none;position:fixed;top:64px;left:0;right:0;bottom:0;z-index:49;background:var(--bg);overflow-y:auto;padding:8px 16px 48px}
body.menu-open{overflow:hidden}
body.menu-open .mnav{display:block}
.mnav a{display:block;padding:13px 0;border-bottom:1px solid var(--line);font-size:17px;text-decoration:none;color:var(--text)}
.mnav a small{display:block;font-size:13px;color:var(--muted)}
.mnav .grp{font-size:12px;color:var(--muted);margin:22px 0 2px;letter-spacing:.02em}
.mnav .btn{display:flex;margin-top:24px;width:100%;border-bottom:var(--bw) solid var(--text)}
@media (max-width:1060px){.burger{display:inline-flex}header .in{gap:12px}}
@media (min-width:1061px){.mnav{display:none!important}}
@media (max-width:380px){header .btn{padding:0 12px}}

/* ===== main page: AI-first ===== */
.prob{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 56px;margin-top:40px}
.prob h3{font-size:18px;font-weight:500;margin-bottom:6px}
.prob p{font-size:15px;color:var(--text-2)}
.prob .n{font-family:var(--mono);font-size:12px;color:var(--brass);margin-bottom:8px}
.links{margin-top:48px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:stretch}
.links .box{padding:20px}
.links svg{width:100%;height:220px;display:block}
.links .cap{font-size:14px;color:var(--text-2);margin-top:10px}
.links .cap b{font-family:var(--mono);color:var(--text);font-weight:500}
.lyr{margin-top:40px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start}
.lyr ol{list-style:none;counter-reset:l;border-top:1px solid var(--line)}
.lyr li{counter-increment:l;display:grid;grid-template-columns:56px 200px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.lyr li:before{content:"0" counter(l);font-family:var(--mono);font-size:13px;color:var(--brass);padding-top:3px}
.lyr li h3{font-size:17px;font-weight:500}
.lyr li h3 small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}
.lyr li p{font-size:15px;color:var(--text-2)}
.lyr li p span{font-family:var(--mono);font-size:12px;color:var(--muted);display:block;margin-top:6px}
.cross{border:1px solid var(--line);border-left:3px solid var(--brass);border-radius:6px;padding:20px;background:var(--bg-2);position:sticky;top:90px}
.cross h3{font-size:17px;font-weight:500;margin-bottom:4px}
.cross>p{font-size:13px;color:var(--muted);margin-bottom:12px}
.cross div{padding:12px 0;border-top:1px solid var(--line)}
.cross b{display:block;font-weight:500;font-size:15px}
.cross span{font-size:14px;color:var(--text-2)}
.cat{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;margin-top:40px;align-items:start}
.card-is .box-h{align-items:flex-start}
.card-is table{width:100%;border-collapse:collapse;font-size:14px}
.card-is td{padding:10px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.card-is td:first-child{color:var(--muted);width:42%}
.card-is tr:last-child td{border-bottom:0}
.pill{font-size:12px;border:1px solid var(--brass);color:var(--brass);border-radius:20px;padding:3px 10px;white-space:nowrap}
.fmap{padding:20px}
.fmap .grid{display:grid;grid-template-columns:1fr 60px 1fr 60px 1fr;align-items:center;gap:0}
.fmap .col{display:flex;flex-direction:column;gap:10px}
.fmap .nd{border:1px solid var(--line-2);border-radius:6px;padding:10px 12px;font-size:14px;background:var(--bg)}
.fmap .nd small{display:block;color:var(--muted);font-size:12px}
.fmap .hub{border:1px solid var(--brass);border-radius:6px;padding:22px 12px;text-align:center;background:#2a261d}
.fmap .hub small{display:block;font-family:var(--mono);font-size:11px;color:var(--brass);margin-top:4px}
.fmap .ar{height:2px;background:var(--line-2);position:relative}
.fmap .ar:after{content:"";position:absolute;right:-1px;top:-4px;border-left:7px solid var(--line-2);border-top:5px solid transparent;border-bottom:5px solid transparent}
.fmap p{font-size:13px;color:var(--muted);margin-top:16px}
.qs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:24px;border-top:1px solid var(--line)}
.qs div{padding:16px 16px 0 0;font-size:16px}
.qs div:before{content:"«";color:var(--brass)}.qs div:after{content:"»";color:var(--brass)}
.ctx{display:grid;grid-template-columns:repeat(5,1fr);margin-top:40px;border-top:1px solid var(--line)}
.ctx>div{padding:18px 18px 18px 0;position:relative}
.ctx>div:not(:last-child):after{content:"→";position:absolute;right:14px;top:18px;font-size:13px;line-height:17.6px;color:var(--brass)}
.ctx .k{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.06em}
.ctx h3{font-size:17px;font-weight:500;margin:6px 0}
.ctx p{font-size:14px;color:var(--text-2)}
.audit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;margin-top:48px}
.audit h3{font-size:14px;font-weight:500;color:var(--muted);margin-bottom:8px}
.audit p{font-size:15px;color:var(--text-2);padding:10px 0;border-bottom:1px solid var(--line)}
.audit p b{color:var(--text);font-weight:500}
table.cmp{width:100%;border-collapse:collapse;margin-top:36px;font-size:14px}
table.cmp th{font-weight:500;color:var(--muted);font-size:13px;text-align:center;padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:bottom}
table.cmp th:first-child{text-align:left}
table.cmp th.us{color:var(--brass)}
table.cmp td{padding:13px 8px;border-bottom:1px solid var(--line);text-align:center;color:var(--text-2)}
table.cmp td:first-child{text-align:left;color:var(--text)}
table.cmp td.us{background:rgba(214,166,74,.07)}
.mk{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle}
.mk.y{background:var(--brass)}.mk.p{border:1.5px solid var(--brass);background:linear-gradient(90deg,var(--brass) 50%,transparent 50%)}.mk.n{width:12px;height:2px;border-radius:1px;background:var(--line-2)}
.cmp-leg{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:14px}
.cmp-leg span{display:inline-flex;align-items:center;gap:8px}
.cmp-note{margin-top:20px;font-size:15px;color:var(--text-2);border-left:3px solid var(--brass);padding-left:14px;max-width:820px}
.sc{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px;margin-top:40px}
.sc>div{padding:22px 0;border-top:1px solid var(--line)}
.sc .n{font-family:var(--mono);font-size:12px;color:var(--brass)}
.sc h3{font-size:17px;font-weight:500;margin:6px 0 10px}
.sc dl{font-size:14px}
.sc dt{color:var(--muted);font-size:12px;margin-top:8px}
.sc dd{color:var(--text-2)}
.sc-note{margin-top:28px;font-size:15px;color:var(--text-2);max-width:860px}
.gantt{margin-top:40px;border-top:1px solid var(--line)}
.gantt .g{display:grid;grid-template-columns:280px repeat(6,1fr);align-items:center;border-bottom:1px solid var(--line);min-height:46px;font-size:14px}
.gantt .g.h{font-family:var(--mono);font-size:11px;color:var(--muted);min-height:34px}
.gantt .g>div:first-child{padding-right:16px;color:var(--text-2)}
.gantt .g>div:first-child b{font-family:var(--mono);color:var(--brass);font-weight:400;margin-right:8px}
.gantt .bar2{height:14px;border-radius:3px;background:var(--brass);opacity:.85}
.pfacts{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:40px}
.pfacts h3{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:8px}
.pfacts li{list-style:none;font-size:15px;color:var(--text-2);padding:6px 0;border-bottom:1px solid var(--line)}
.conn{margin-top:24px}
@media (max-width:1060px){
  .lyr{grid-template-columns:1fr}.cross{position:static}
  .cat,.audit,.links{grid-template-columns:1fr}
  .ctx{grid-template-columns:1fr 1fr}
  .sc{grid-template-columns:1fr 1fr}
  .pfacts{grid-template-columns:1fr 1fr}
  .gantt .g{grid-template-columns:180px repeat(6,1fr)}
  .cmp-wrap{overflow-x:auto}table.cmp{min-width:720px}
}
@media (max-width:640px){
  .prob,.sc,.pfacts,.qs{grid-template-columns:1fr}
  .ctx{grid-template-columns:1fr}.ctx div:after{display:none}
  .lyr li{grid-template-columns:40px 1fr}.lyr li p{grid-column:2}
  .fmap .grid{grid-template-columns:1fr;gap:10px}.fmap .ar{width:2px;height:20px;margin:0 auto}.fmap .ar:after{right:-4px;top:auto;bottom:-1px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid var(--line-2);border-bottom:0}
  .gantt{overflow-x:auto}.gantt .g{min-width:560px;grid-template-columns:160px repeat(6,1fr)}
}

/* плашка «Участник Сколково» в подвале */
footer{--sk-ink:var(--bg)}
.sk-badge{margin-top:20px;display:inline-block;width:200px}
/* значок тёмно-серый на прозрачном фоне: в тёмной теме инвертируем, чтобы он читался без подложки */
.sk-badge img{filter:invert(1)}
html[data-theme="light"] .sk-badge img{filter:none}
.sk-badge img{display:block;width:100%;height:auto}

/* ===== MENU & PAGES: меню-ячейки, услуги, о нас, контакты ===== */
.prose.page{max-width:820px}
.prose h2{color:var(--text);font-size:26px;font-weight:500;margin:44px 0 14px;line-height:1.25}
.prose h2:first-child{margin-top:0}
.prose .btn{margin-top:4px}
ul.chips{list-style:none;padding:0;margin:4px 0 26px;display:flex;flex-wrap:wrap;gap:8px}
ul.chips li{margin:0;border:1px solid var(--line-2);border-radius:999px;padding:6px 14px;font-size:14px;color:var(--text);background:var(--bg-2)}
.svc-list{border-top:1px solid var(--line)}
.svc{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;border-bottom:1px solid var(--line);text-decoration:none}
.svc b{font-size:22px;font-weight:500;color:var(--text)}
.svc span{font-size:14px;color:var(--brass);white-space:nowrap}
.svc:hover b{color:var(--brass)}
.contact-card{max-width:760px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:26px 28px}
.contact-card h3{font-size:20px;font-weight:500;margin-bottom:14px}
.crow{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:12px 0;border-top:1px solid var(--line);font-size:15px}
.crow span{color:var(--muted)}
.crow b{font-weight:500;color:var(--text)}
.crow a{color:var(--brass);text-decoration:none}
@media (max-width:640px){.svc{flex-direction:column;align-items:flex-start;gap:6px}.svc b{font-size:18px}.crow{grid-template-columns:1fr;gap:2px}.contact-card{padding:20px}}

/* ===== SERVICES: оформление страниц услуг ===== */
.svc-page h2{scroll-margin-top:90px}
.svc-page h3.step{display:flex;align-items:center;gap:14px;margin-top:34px}
.svc-page h3.step .num{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--brass);color:var(--brass);display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:14px;font-weight:500}
.svc-page h3.step~p{padding-left:48px}
.svc-page h2~p{padding-left:0}
.svc-page p.lbl{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--brass);margin:12px 0 4px}
.svc-page h4{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--brass);margin:16px 0 6px}
.svc-page h4 strong{font-weight:600;color:inherit}
.svc-page ol{list-style:none;counter-reset:n;padding:0;margin:8px 0 28px}
.svc-page ol>li{counter-increment:n;position:relative;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:18px 22px 18px 64px;margin:0 0 12px}
.svc-page ol>li:before{content:counter(n);position:absolute;left:20px;top:18px;width:28px;height:28px;border-radius:50%;border:1px solid var(--brass);color:var(--brass);font-family:var(--mono);font-size:13px;display:flex;align-items:center;justify-content:center}
.svc-page ol>li>h3:first-child,.svc-page ol>li>p:first-child{margin-top:2px}
.svc-page ol>li h3{font-size:19px;margin:2px 0 10px}
.svc-page ol>li>p:last-child{margin-bottom:0}
.svc-page ol>li ul{margin:10px 0 0}
.svc-page ul>li::marker{color:var(--brass)}
.svc-page .callout{border:1px solid var(--brass);border-radius:12px;background:linear-gradient(180deg,rgba(214,166,74,.08),rgba(214,166,74,.02));padding:22px 24px;margin:28px 0}
.svc-page .callout h3{margin-top:0}
.svc-page .callout p:last-child{margin-bottom:0}
@media (max-width:640px){.svc-page ol>li{padding:16px 16px 16px 54px}.svc-page ol>li:before{left:14px}.svc-page h3.step~p{padding-left:0}}

/* ===== SITEMAP ===== */
.sitemap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.sm-col h3{font-size:18px;font-weight:500;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.sm-col h3 a{color:var(--text);text-decoration:none}
.sm-col h3 a:hover{color:var(--brass)}
.sm-col ul{list-style:none;padding:0;margin:0}
.sm-col li{padding:6px 0;font-size:15px}
.sm-col li a{color:var(--text-2);text-decoration:none}
.sm-col li a:hover{color:var(--brass)}
@media (max-width:1060px){.sitemap{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.sitemap{grid-template-columns:1fr}}

/* ===== стадии данных в шине (#layers) ===== */
.stages{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 0;font-size:14px}
.stages span{padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg-2);color:var(--text)}
.stages i{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--brass);padding:0 10px;display:flex;align-items:center;gap:6px}
.stages i:before,.stages i:after{content:"";width:10px;height:1px;background:var(--line-2,var(--line))}
.stages i:after{width:6px;height:6px;background:none;border-top:1px solid var(--muted);border-right:1px solid var(--muted);transform:rotate(45deg);margin-left:-8px}
@media (max-width:600px){
  .stages{flex-direction:column;align-items:flex-start}
  .stages i{padding:4px 0 4px 16px}
  .stages i:before{width:1px;height:12px}
  .stages i:after{display:none}
}

/* ===== светлые и серые блоки: тёмными остаются первый экран, каталог, проверка качества, призыв и подвал ===== */
#problem,#context,#scenarios,#faq,.p-hero+section,html[data-theme="light"] .p-hero,
#layers,#compare,#solutions,.p-hero+section~section:not(#contact){
  --bg:#f4f5f7;--bg-2:#eceef1;--surface:#fff;--card:#fff;--alt:#eceef1;
  --line:#dde0e4;--line-2:#c9cdd3;
  --text:#16181b;--text-2:#40444b;--muted:#6c7079;
  --brass:#946818;--accent-soft:#f1e5c9;--ok:#23804f;--err:#bf433c;--good-ink:#23804f;--bad-ink:#bf433c;
  --ink:var(--text);--ink-2:var(--text-2);--ink-3:var(--muted);
  background:var(--bg);color:var(--text);border-top-color:transparent
}
/* серые */
html[data-theme="light"] .p-hero,#layers,#compare,#solutions,.p-hero+section~section:not(#contact){--bg:#e9eaec;--bg-2:#dfe1e4;--surface:#f6f6f7;--card:#f6f6f7;--alt:#dfe1e4;--line:#d3d5d9;--line-2:#bfc2c7}
:is(html[data-theme="light"] .p-hero,#problem,#context,#scenarios,#faq,#layers,#compare,#solutions,.p-hero+section,.p-hero+section~section:not(#contact)) .tag{color:#7a5410;background:#f1e5c9}
:is(html[data-theme="light"] .p-hero,#problem,#context,#scenarios,#faq,#layers,#compare,#solutions,.p-hero+section,.p-hero+section~section:not(#contact)) .btn.primary{background:#16181b;color:#fff;border-color:#16181b}
:is(html[data-theme="light"] .p-hero,#problem,#context,#scenarios,#faq,#layers,#compare,#solutions,.p-hero+section,.p-hero+section~section:not(#contact)) .btn.primary:hover{background:#2b2e33}

/* ===== архитектурная схема «Фабрика данных» (#arch) ===== */
.arch-wrap{margin-top:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.arch-wrap svg{display:block;width:100%;min-width:980px;height:auto;font-family:var(--sans)}
#arch .pn rect{fill:var(--arch-panel);stroke:var(--dark-line)}
#arch .pn{cursor:pointer}
#arch .pn.dash rect{fill:none;stroke-dasharray:4 4}
#arch .pt{font-size:10px;letter-spacing:.06em;fill:var(--on-dark-2)}
#arch .pt2{font-size:11px;fill:var(--on-dark-2)}
#arch .n{cursor:pointer;outline:none}
#arch .n rect.b{fill:var(--node);stroke:var(--arch-line);stroke-width:1.2;transition:stroke .15s}
#arch .n.box rect.b{fill:var(--arch-box);stroke:var(--dark-line)}
#arch .n text{fill:var(--on-dark);font-size:12px}
#arch .n text.s{fill:var(--on-dark-2);font-size:10px}
#arch text.mono{font-family:var(--mono)}
#arch .n:hover rect.b,#arch .n:focus-visible rect.b{stroke:var(--hi)}
#arch .lane .hit{fill:transparent}
#arch .lane line{stroke:var(--dark-line);stroke-width:2}
#arch .lane text{fill:var(--on-dark-2);font-size:10.5px}
#arch .lane:hover text{fill:var(--on-dark)}
#arch .e{fill:none;stroke:var(--arch-line);stroke-width:1.5;transition:opacity .15s}
#arch .e.m{stroke-dasharray:2 4}
#arch .e.a{stroke-dasharray:5 4}
#arch .el{font-size:10px;fill:var(--on-dark-2)}
#arch.sel .n:not(.on),#arch.sel .e:not(.on),#arch.sel .el:not(.on){opacity:.2}
#arch .e.on{stroke:var(--hi);stroke-width:2}
#arch .n.on rect.b{stroke:var(--hi)}
#arch .n.cur rect.b{stroke:var(--accent);stroke-width:2}
#arch .n.off rect.b{stroke-dasharray:3 3;fill:transparent}
#arch .n.flash rect.b{stroke:var(--bad);stroke-width:2}
.arch-legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;color:var(--on-dark-2);margin-top:10px}
.arch-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.arch-legend .arch-scroll{display:none;margin-left:auto}
.arch-info{margin-top:12px;border:var(--bw) solid var(--dark-line);border-radius:var(--r);padding:14px 16px;font-size:14px;color:var(--on-dark-2);min-height:92px}
.arch-info b{color:var(--on-dark);font-weight:500;font-size:15px}
.arch-info .sub{display:block;font-size:12px;margin-top:2px}
.arch-info p{margin-top:6px;max-width:820px}
.arch-info .io{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin-top:10px;font-size:13px}
.arch-info .io span:nth-child(even){color:var(--on-dark)}
.arch-info .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.arch-info .btn{height:34px;font-size:13px;padding:0 14px;color:var(--on-dark);border-color:var(--dark-line)}
.arch-info .btn:disabled{opacity:.4;cursor:default}
#flow .pipe-stats{grid-template-columns:repeat(3,1fr)}
@media (max-width:1010px){.arch-legend .arch-scroll{display:inline}}
@media (max-width:600px){#flow .pipe-stats{grid-template-columns:1fr}}

/* ===== карта сайта: один список, как на dataprovod.ru/sitemap ===== */
.sitemap-list{list-style:none;max-width:720px;font-size:16px}
.sitemap-list li{border-bottom:1px solid var(--line)}
.sitemap-list a{display:block;padding:10px 0;text-decoration:none;color:var(--text)}
.sitemap-list li.sub a{padding-left:24px;color:var(--text-2)}
.sitemap-list a:hover{color:var(--brass)}

/* внутренние страницы: шапка страницы серая, без перехода «чёрное → белое» */
.p-hero{border-bottom:1px solid var(--line);background:var(--surface)}
.p-hero+section{padding-top:56px}

/* ===== кнопка темы ===== */
.theme-btn{width:40px;height:38px;border:1px solid var(--line-2);border-radius:6px;background:transparent;display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--text)}
.theme-btn:hover{border-color:var(--muted)}
.theme-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.theme-btn .moon{display:none}
html[data-theme="light"] .theme-btn .sun{display:none}
html[data-theme="light"] .theme-btn .moon{display:block}
#arch .mk{fill:var(--arch-arrow)}#arch .mk.on{fill:var(--arch-arrow-on)}

/* ===== светлая тема: включается кнопкой в шапке (html[data-theme="light"]) ===== */
html[data-theme="light"]{
  color-scheme:light;
  --bg:#ffffff;--bg-2:#f4f5f6;--surface:#fff;--line:#e3e4e7;--line-2:#cdd0d5;
  --text:#16181b;--text-2:#40444b;--muted:#6c7079;--brass:#946818;--ok:#23804f;--err:#bf433c;--warn:#946818;
  --alt:#f4f5f6;--card:#fff;--accent-soft:#f1e5c9;
  --dark:#ffffff;--dark-2:#f6f7f8;--dark-line:#d9dce1;--on-dark:#16181b;--on-dark-2:#5c626b;--hi:#40444b;--hi-2:#946818;
  --pipe:#d9dce1;--node:#ffffff;--good:#23804f;--good-ink:#23804f;--good-soft:#e3f2e9;--bad:#c2453e;--bad-ink:#bf433c;--bad-soft:#f8e4e2;--warn-soft:#f6ecd6;
  --arch-line:#b9bdc4;--arch-panel:rgba(0,0,0,.018);--arch-box:rgba(0,0,0,.02);--arch-arrow:#9aa0a8;--arch-arrow-on:#40444b;
}
html[data-theme="light"] header{background:rgba(255,255,255,.92)}
html[data-theme="light"] .tag{color:#7a5410;background:#f1e5c9}
html[data-theme="light"] .btn.primary{background:#16181b;color:#fff;border-color:#16181b}
html[data-theme="light"] .btn.primary:hover{background:#2b2e33}
html[data-theme="light"] .seg{background:rgba(0,0,0,.03)}
html[data-theme="light"] .pipe-tip{box-shadow:0 10px 30px rgba(0,0,0,.12)}
html[data-theme="light"] .dd-menu{box-shadow:0 16px 40px rgba(0,0,0,.12)}
html[data-theme="light"] table.raw tr.scan td{background:#eef1f4}
html[data-theme="light"] table.raw tr.bad td{background:#fbeceb}
html[data-theme="light"] pre.ddql .k{color:#3c5a8a}html[data-theme="light"] pre.ddql .s{color:#946818}html[data-theme="light"] pre.ddql .f{color:#2f7a52}
html[data-theme="light"] .fmap .hub{background:#f8f2e4}
html[data-theme="light"] #bt2 .bar text{fill:#fff}

/* ===== схема на весь экран ===== */
.pipe-ctl{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.full-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:var(--bw) solid var(--dark-line);border-radius:var(--r-sm);background:transparent;color:var(--on-dark);font-size:13px;font-weight:600}
.full-btn:hover{border-color:var(--on-dark-2)}
.full-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.full-btn .cl,.is-full .full-btn .op{display:none}.is-full .full-btn .cl{display:block}
html.arch-open{overflow:hidden}
.pipe-card.is-full{position:fixed;inset:0;z-index:100;margin:0;border-radius:0;border:0;overflow:auto;padding:20px 24px;background:var(--dark-2)}
/* на широком экране всё помещается без прокрутки: схема слева, описание и счётчики справа */
@media (min-width:1011px){
  .pipe-card.is-full{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:auto minmax(0,1fr) auto;gap:12px 20px;height:100vh;overflow:hidden}
  .pipe-card.is-full .pipe-top{grid-column:1/-1;margin:0}
  .pipe-card.is-full .arch-wrap{grid-column:1;grid-row:2;margin:0;min-height:0;overflow:hidden}
  .pipe-card.is-full .arch-wrap svg{width:100%;height:100%;min-width:0}
  .pipe-card.is-full .arch-legend{grid-column:1;grid-row:3;margin:0}
  .pipe-card.is-full .arch-info{grid-column:2;grid-row:2;margin:0;overflow:auto;min-height:0}
  #flow.is-full .pipe-stats{grid-column:2;grid-row:3;margin:0;grid-template-columns:1fr;gap:6px}
  .pipe-card.is-full .ps{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 12px}
  .pipe-card.is-full .ps b{font-size:18px}
  .pipe-card.is-full .pipe-hint{display:none}
}
.pipe-tip{z-index:120}
.arch-info .step-bar{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap;margin-bottom:12px;padding-bottom:12px;border-bottom:var(--bw) solid var(--dark-line)}
.arch-info .step-bar .row{margin-top:0}
.arch-info .step-bar .sub{margin:0}
