
:root{
  --primary:#1d4ed8; --primary-dark:#1e40af; --primary-soft:#eef2ff;
  --ok:#059669; --ok-bg:#ecfdf5; --ok-tx:#065f46; --ok-bd:#a7f3d0;
  --warn:#d97706; --warn-bg:#fffbeb; --warn-tx:#92400e; --warn-bd:#fde68a;
  --bad:#dc2626; --bad-bg:#fef2f2; --bad-tx:#991b1b; --bad-bd:#fecaca;
  --ink:#0f172a; --ink-2:#334155; --ink-3:#475569; --muted:#64748b; --muted-2:#94a3b8;
  --canvas:#ffffff; --sub:#f8fafc; --line:#e2e8f0; --line-2:#cbd5e1;
  --code-bg:#0f172a; --code-tx:#e2e8f0;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --r1:4px; --r2:8px;
  --maxw:1280px;
}
@media (prefers-color-scheme: dark){
  :root{
    --canvas:#090d16; --sub:#0f172a; --line:#1e293b; --line-2:#334155;
    --ink:#e2e8f0; --ink-2:#cbd5e1; --ink-3:#94a3b8; --muted:#94a3b8; --muted-2:#64748b;
    --primary-soft:#0f172a;
    --ok-bg:#064e3b33; --ok-tx:#34d399; --ok-bd:#05966955;
    --warn-bg:#78350f33; --warn-tx:#fbbf24; --warn-bd:#d9770655;
    --bad-bg:#7f1d1d33; --bad-tx:#f87171; --bad-bd:#dc262655;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:26px;letter-spacing:-.005em;font-feature-settings:"tnum" 1}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.02em;line-height:1.25}
h1{font-size:40px;font-weight:700;line-height:48px;letter-spacing:-.025em}
h2{font-size:28px;line-height:36px}
h3{font-size:22px;line-height:28px;letter-spacing:-.015em}
h4{font-size:18px;line-height:24px;letter-spacing:-.01em}
p{margin:0 0 16px}
code,kbd,pre,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--canvas);padding:8px;border:1px solid var(--line);z-index:99}

/* шапка */
.hdr{position:sticky;top:0;z-index:50;background:var(--canvas);border-bottom:1px solid var(--line)}
.hdr .in{max-width:var(--maxw);margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:baseline;gap:8px;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.brand:hover{text-decoration:none}
.brand b{color:var(--primary)}
.brand span{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--muted);
  letter-spacing:.06em;text-transform:uppercase}
.nav{display:flex;gap:20px;margin-left:auto;font-size:14px;flex-wrap:wrap}
.nav a{color:var(--ink-2)}
.nav a[aria-current]{color:var(--primary);font-weight:600}
.btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--r1);
  border:1px solid var(--primary-dark);background:var(--primary);color:#fff;font-family:var(--mono);
  font-size:12px;font-weight:500;letter-spacing:.02em;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--primary-dark);text-decoration:none}
.btn--ghost{background:transparent;border-color:var(--line-2);color:var(--ink-2)}
.btn--ghost:hover{background:var(--sub);color:var(--ink)}
.btn--sm{height:32px;padding:0 12px}

/* полосы */
.strip{border-bottom:1px solid var(--line);background:var(--sub)}
.strip .in{max-width:var(--maxw);margin:0 auto;padding:10px 24px;display:flex;gap:20px;flex-wrap:wrap;
  font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.strip b{color:var(--ink);font-weight:500}

/* сетка страницы */
.grid{display:grid;grid-template-columns:200px minmax(0,1fr) 240px;gap:40px;align-items:start;
  max-width:var(--maxw);margin:0 auto;padding:40px 24px 64px}
.rail{position:sticky;top:84px;font-size:13px;line-height:20px}
.rail .t{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted);margin-bottom:10px}
.rail ol{list-style:none;margin:0;padding:0;counter-reset:i}
.rail li{counter-increment:i;margin-bottom:6px}
.rail li a{color:var(--ink-2);display:block;border-left:2px solid transparent;padding-left:10px}
.rail li a:hover{color:var(--primary);text-decoration:none;border-left-color:var(--primary)}
.rail li a::before{content:counter(i) ". ";color:var(--muted)}
.tele{position:sticky;top:84px}
.panel{border:1px solid var(--line);border-radius:var(--r2);background:var(--sub);padding:14px 16px;margin-bottom:14px}
.panel h4{font-size:13px;text-transform:uppercase;letter-spacing:.04em;font-family:var(--mono);
  font-weight:500;color:var(--muted);margin-bottom:10px}
.kv{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:4px 0;
  border-bottom:1px dashed var(--line)}
.kv:last-child{border-bottom:0}
.kv span:first-child{color:var(--muted)}
.kv span:last-child{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}

main{min-width:0}
.lead{font-size:18px;line-height:28px;color:var(--ink-2)}
.crumbs{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muted);margin-bottom:14px}
.crumbs a{color:var(--muted)}

/* бейджи */
.chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.chip{height:20px;display:inline-flex;align-items:center;padding:0 6px;border-radius:var(--r1);
  font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;
  background:#f1f5f9;color:#475569;border:1px solid var(--line-2)}
@media (prefers-color-scheme: dark){.chip{background:#1e293b;color:#94a3b8}}
.chip--ok{background:var(--ok-bg);color:var(--ok-tx);border-color:var(--ok-bd)}
.chip--warn{background:var(--warn-bg);color:var(--warn-tx);border-color:var(--warn-bd)}
.chip--bad{background:var(--bad-bg);color:var(--bad-tx);border-color:var(--bad-bd)}

/* плитки замеров */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 26px}
.tile{border:1px solid var(--line);border-radius:var(--r2);padding:14px;background:var(--canvas)}
.tile b{display:block;font-family:var(--mono);font-size:26px;font-weight:500;letter-spacing:-.02em;
  color:var(--primary);font-variant-numeric:tabular-nums;line-height:1.1}
.tile i{display:block;font-style:normal;font-size:12px;line-height:18px;color:var(--muted);margin-top:6px}

/* кнопки-ссылки */
.actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:8px 0 0}
.tlink{font-size:14px;border-bottom:1px solid var(--line-2)}
.tlink:hover{text-decoration:none;border-color:var(--primary)}

/* секции */
section{margin-top:48px}
.sechead{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--line);
  padding-bottom:10px;margin-bottom:20px}
.sechead h2{font-size:22px}
.sechead .more{margin-left:auto;font-size:13px;font-family:var(--mono)}

/* карточки */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{border:1px solid var(--line);border-radius:var(--r2);padding:16px;background:var(--canvas);
  display:flex;flex-direction:column;gap:8px}
.card:hover{border-color:var(--line-2)}
.card .rub{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--primary)}
.card h3{font-size:18px;line-height:24px}
.card h3 a{color:var(--ink)}
.card p{margin:0;font-size:14px;line-height:22px;color:var(--ink-3)}
.card .meta{margin-top:auto;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.03em}
.card--wide{grid-column:span 3;flex-direction:row;gap:24px;align-items:center}
.card--wide .side{flex:0 0 42%}
.card--wide h3{font-size:26px;line-height:32px;letter-spacing:-.02em}

/* таблица */
.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r2)}
table{border-collapse:collapse;width:100%;font-size:14px;min-width:640px}
th,td{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;
  color:var(--muted);background:var(--sub);font-weight:500;white-space:nowrap}
td.n,th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--sub)}

/* врезки и терминал */
.callout{border:1px solid var(--line);border-left:2px solid var(--primary);border-radius:var(--r1);
  padding:12px 14px;margin:16px 0;background:var(--sub);font-size:14px;line-height:22px}
.callout b{font-family:var(--mono)}
.callout--ok{border-left-color:var(--ok)}
.callout--warn{border-left-color:var(--warn)}
.term{border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;margin:16px 0}
.term .bar{height:32px;display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--sub);
  border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;color:var(--muted);
  letter-spacing:.04em}
.term pre{margin:0;background:var(--code-bg);color:var(--code-tx);padding:14px;font-size:12.5px;
  line-height:20px;overflow-x:auto}

/* шаги */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.step{counter-increment:s;border:1px solid var(--line);border-radius:var(--r2);padding:14px 14px 14px 46px;
  position:relative;font-size:14px;line-height:22px}
.step::before{content:counter(s);position:absolute;left:14px;top:14px;width:22px;height:22px;
  border-radius:50%;background:var(--primary-soft);color:var(--primary);font-family:var(--mono);
  font-size:12px;display:flex;align-items:center;justify-content:center}
.step b{display:block;margin-bottom:4px}

/* стенд инъекций */
.stand{border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.stand .cols{display:grid;grid-template-columns:1fr 1fr}
.stand .pane{padding:16px}
.stand .pane+.pane{border-left:1px solid var(--line)}
.stand textarea{width:100%;min-height:120px;resize:vertical;padding:10px 12px;font-family:var(--mono);
  font-size:12.5px;line-height:19px;border:1px solid var(--line-2);border-radius:var(--r1);
  background:var(--canvas);color:var(--ink)}
.stand textarea:focus{outline:0;border-color:var(--primary)}
.verdict{font-size:14px;line-height:22px}
.rules{list-style:none;margin:12px 0 0;padding:0;font-family:var(--mono);font-size:12px;line-height:20px}
.rules li{padding:3px 0;color:var(--muted)}
.rules li.hit{color:var(--bad-tx)}
.rules li.hit::before{content:"✕ "}
.rules li.no::before{content:"· "}

/* подписка */
.sub{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.sub input{height:34px;min-width:240px;padding:0 12px;font-size:13px;border:1px solid var(--line-2);
  border-radius:var(--r1);background:var(--canvas);color:var(--ink);font-family:var(--sans)}
.sub input:focus{outline:0;border-color:var(--primary)}

/* подвал */
footer{border-top:1px solid var(--line);margin-top:56px;background:var(--sub)}
footer .in{max-width:var(--maxw);margin:0 auto;padding:28px 24px;display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;gap:24px;font-size:13px;line-height:22px}
footer h4{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muted);margin-bottom:10px}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:6px}
footer a{color:var(--ink-2)}
footer .legal{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px;
  font-family:var(--mono);font-size:11px;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap}

/* адаптив */
@media (max-width:1100px){
  .grid{grid-template-columns:minmax(0,1fr) 240px;gap:28px}
  .rail{display:none}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .cards{grid-template-columns:repeat(2,1fr)}
  .card--wide{grid-column:span 2}
  footer .in{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  body{font-size:15px;line-height:24px}
  h1{font-size:30px;line-height:36px;letter-spacing:-.02em}
  h2{font-size:22px;line-height:28px}
  .grid{grid-template-columns:minmax(0,1fr);gap:20px;padding:24px 16px 40px}
  .tele{position:static}
  .wrap,.hdr .in,.strip .in,footer .in{padding-left:16px;padding-right:16px}
  .hdr .in{height:auto;flex-wrap:wrap;padding-top:10px;padding-bottom:10px;gap:10px}
  .nav{width:100%;margin-left:0;gap:14px;font-size:13px}
  .tiles{grid-template-columns:1fr 1fr;gap:10px}
  .tile b{font-size:22px}
  .cards{grid-template-columns:1fr}
  .card--wide{grid-column:span 1;flex-direction:column;align-items:flex-start}
  .stand .cols{grid-template-columns:1fr}
  .stand .pane+.pane{border-left:0;border-top:1px solid var(--line)}
  .steps{grid-template-columns:1fr}
  footer .in{grid-template-columns:1fr}
}
